2009-08-11 17 views
9

È ormai risaputo che si combinano fogli di stile e script per ridurre le richieste HTTP. Ho 2 domande:Ottimizzazione delle richieste HTTP: qual è il limite?

  1. Quanto sono costose, davvero?
  2. Quando una richiesta è troppo grande deve essere divisa?

Non riesco a trovare le risposte a queste due domande in tutte le letture che ho fatto on-line, come ad esempio Yahoo! Best Practices in cui si afferma un certo numero di volte che le richieste HTTP sono costosi, ma mai citare perché o come.

Grazie in anticipo.

risposta

6

Una richiesta HTTP richiede una connessione TCP/IP da effettuare (Si pensi, 3-way handshake handshaking) prima di poter gestire la richiesta HTTP è di per sé

Questo coinvolge almeno un ritardo di invio del messaggio SYN a il server e ottenere indietro il SYN/ACK (quindi invia l'ACK per APRIRE il socket).

Quindi, supponiamo che il ritardo tra client e server sia uniforme in entrambi i modi e 50 ms, che si traduca in un ritardo di 100 ms prima che possa inviare la richiesta HTTP. Sono quindi necessari altri 100 ms prima di riavviare la richiesta effettiva (invia la richiesta, quindi le risposte del server).

Ovviamente, è necessario considerare anche che un browser Web standard limita il numero di richieste HTTP simultanee che sta elaborando allo stesso tempo. Se le tue richieste devono aspettare, non ricevi il tempo della stretta di mano gratuitamente (per così dire), dal momento che devi anche aspettare che finisca un'altra connessione. Anche i server hanno un ruolo, a seconda di come server le richieste.

+2

In aggiunta a questa risposta, i browser di solito aprono solo un numero limitato di connessioni TCP contemporaneamente (~ 2..4) - quindi se si hanno più richieste di quel numero, verranno accodate. –

+0

Ho pensato di aggiungere che non appena ho colpito post. Davvero un dettaglio abbastanza importante. –

1

Non ho una risposta per quanto costose richieste HTTP sono, ma è sempre una buona idea ridurre i roundtrip tra client e server. Se hai una quantità fissa di dati da trasmettere, sarà sempre meglio farlo in un numero inferiore di richieste.

2
  1. Ogni volta che viene effettuata una richiesta, è soggetta alle dure realtà dell'affidabilità della rete. Due richieste fatte in rapida successione dalla stessa posizione potrebbero richiedere percorsi completamente diversi, quindi con ogni richiesta si aggiunge un elemento di imprevedibilità in termini di prestazioni. Una singola richiesta consolidata può aiutare a mitigare tale rischio. @ Dan McG ha scritto un punto sonoro sull'overhead della stretta di mano TCP.
  2. HTTP non si preoccupa della dimensione della richiesta , poiché funge da protocollo del livello applicazione sullo stack IP (Internet Protocol Suite). Ciò significa che il TCP/IP si preoccupa di , che cosa potrebbe preoccupare l'editore è mantenere le dimensioni di documenti/file il più possibile ridotte e abbastanza piccole da rendere la loro applicazione sufficientemente performante.

Spero che abbia senso.

Problemi correlati