Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
HTTP 1.1: gestione delle connessioni (1/2)
Scritto da Francesco Carotenuto il 26-01-2011 ore 09:04
Intel Cluster Studio XE
Anche se HTTP può utilizzare più protocolli di trasporto, di fatto la maggior parte delle sue implementazioni esistenti utilizzano TCP. Tuttavia quest'ultimo non è ottimizzato per connessioni di breve durata e con un piccolo scambio di dati, situazione abbastanza frequente in HTTP.

Inoltre TCP richiede un three-way handshake per stabilire la connessione e altri quattro pacchetti per chiuderla. Pertanto se un tipico messaggio HTTP è formato da 10 pacchetti, si avrà un totale di 17 pacchetti scambiati, di cui 7 sono di overhead, circa il 41%.

Inoltre, i trasferimenti web non superano mai la fase slow-start di TCP, prima che la dimensione della finestra sia incrementata significativamente; difatti la connessione viene chiusa prima che ciò possa avvenire evitando così di sfruttare tutta la banda a disposizione.

Se consideriamo poi che un documento HTML è per lo più un contenitore di altri documenti identificati da URI, fare il download di un contenitore richiede numerose transazioni HTTP e di conseguenza numerose connessioni TCP, senza contare poi che prima che il documento completo possa essere visualizzato, bisogna attendere la conclusione di tutte le connessioni.

Un modo per ridurre la latenza è quello di aprire più connessioni HTTP parallele. Questo metodo venne introdotto da Netscape, che instaurava più connessioni per il download parallelo di più risorse. Un altro modo per risolvere il problema consiste nell'osservare che la connessione TCP, una volta stabilita, può restare aperta per più di un solo scambio di richiesta di risposta. Questa osservazione introduce il concetto di connessioni persistenti di HTTP 1.1.

L'idea alla base delle connessioni persistenti è quella di ridurre il numero di connessioni TCP gestite riducendo drasticamente la latenza percepita dall'utente, in quanto le connessioni successive non devono chiudere la connessione precedente e ripetere la fase slow-start di TCP.
Precedente: Guida alle licenze software: il diritto d'autore
Successiva: MOST150, nuove possibilità di infotainment
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.265 secondi.