HTTP/2: caratteristiche e vantaggi

logo http2 sospcadomicilio.it

HTTP/2 è l’evoluzione di HTTP (HyperText Transfer Protocol) versione 1.0 prima e 1.1 dopo, il protocollo utilizzato dal World Wide Web dal 1991 ad oggi consente lo scambio di informazioni in Internet.

Prendiamo ad esempio un’operazione compiuta quotidianamente da miliardi di utenti, la visualizzazione di una pagina web.

Il client (browser: programma utilizzato per visitare i siti internet) ed il server aprono un canale di comunicazione avvalendosi del protocollo HTTP: il client, dopo aver analizzato il codice HTML della pagina, richiede al server le risorse necessarie a visualizzare i contenuti (testi, immagini, video, etc) della pagina web.

Il limite di HTTP sta nel fatto che gestisce una richiesta per volta (prima le immagini, poi i font etc.) e per ogni richiesta viene aperta una connessione con il server. Ogni connessione, oltre al tempo materiale per il trasferimento della risorsa, impegna altro tempo per le operazioni di servizio (latenza), situazione che, in presenza di un elevato numero di utenti e pagine sempre più complesse, porta ad avere ritardi nel caricamento di una pagina.

Nel corso degli ultimi anni gli addetti ai lavori hanno cercato di risolvere il problema ricorrendo a vari stratagemmi (concatenazione degli script, connessioni TCP multiple, mining dei file css e js, ecc.) ma senza riuscire a risolvere completamente la limitazione poiché intrinseca al protocollo.

Superfluo è dire che sia il numero di navigatori del Web quanto la complessità delle pagine attuali non sono paragonabili a quelle esistenti alla data di ideazione del protocollo HTTP [HTTP 0.9-> fine del 1980 HTTP 1.0-> nel 1991 HTTP 1.1-> nel 1997 ed aggiornato nel 1999).

Una evoluzione necessaria

Lo studio e l’approvazione di uno standard che fosse in grado di superare i limiti storici di HTTP ha richiesto 18  anni di lavoro, l’ HTTP/2 è stato quindi introdotto nel 2015. Dalla pagina ufficiale delle domande e risposte frequenti è possibile le caratteristiche principali e differenze (rispetto alla versione 1.1) di HTTP/2:

  • SPDY. HTTP/2 è stato sviluppato dal gruppo di lavoro IEFT (Internet Engineering Task Force, organizzazione che sviluppa e promuove standard per Internet) a partire dal progetto del protocollo SPDY/3 di Google che poteva vantare già l’implementazione sui suoi server da alcuni anni.
  • Formato binario. Rispetto al formato testuale di HTTP/1.1, che richiede l’esecuzione di procedure d’analisi sintattica (parsing), il formato binario è più compatto ed è in grado di incrementare la velocità di caricamento delle pagine.
  • Multiplexing. HTTP/2 è in grado di ovviare ai problemi, migliora la consegna della risorse richieste dal browser ed abbassa i tempi di latenza. I dati da caricare sono suddivisi in più parti ed inviati al browser in un’unica sessione – sarà così compito del browser di assemblare i vari frammenti.
  • Server Push. Non sarà più necessario attendere l’analisi del codice HTML da parte del browser, infatti il server sarà in grado di anticipare le richieste del client, inviando direttamente al browser gli elementi nella cache del client.
  • Compressione degli header HTTP. Gli header HTTP descrivono le modalità operative del browser e del server e sono contenuti in ciascuna richiesta inviata dal primo al secondo. La soluzione utilizzata da HTTP/2 prevede la compressione di tutti gli header in un unico blocco in modo da diminuire sensibilmente la banda utilizzata.

Stato d’adozione di HTTP/2

HTTP/2 è ancora in fase di sviluppo per alcune sue parti ed è compatibile con HTTP/1.1. Attualmente è già utilizzata, poiché supportato dai browser più comuni (Chrome, Firefox, Safari, Edge ecc.) ma solo su TLS.

http2 tabella comparativa

Dal punto di vista dei server e quindi dei siti web, quelli che rendono disponibile il supporto ad HTTP/2 non sono ancora la maggioranza: in base ai dati raccolti da W3Techs (marzo 2018) il protocollo è utilizzato infatti dal 24.9% dei server web presenti sulla rete, ma tanti se ne aggiungono ogni giorno con un tasso di crescita del 15% circa all’anno, percentuale che è sicuramente destinata a salire nel corso degli anni futuri.

Fonti: – w3techs.com – github.io – wikipedia

Altro: Leggi anche gli altri articoli del nostro blog per approfondimenti.