Le Caratteristiche Tecniche di http2

http2

Il Nuovo Protocollo del web disponibile in hosting per siti web

Uno standard di cui si parla poco e solo in ambiti molto specialistici, http2 è la soluzione a due problemi importantissimi:

  1. Sicurezza del sito
  2. Velocità di caricamento delle pagine (performance del sito)

http2 ha anche https

Con un hosting http2 si ha accesso anche al servizio di crittografia dei dati: tutti’i dati del sito web sono trasmessi in https ossia in modo protetto, recependo in pieno la nuova tendenza di Google di garantire connessione sicure tra client (il browser) e server.

Quello che molti non sanno è che http2 offre il vantaggio di poter soddisfare appieno ad entrambi queste esigenze (minor tempi di download e sicurezza nella trasmissione dei dati).

Il Protocollo http2 in dettaglio

http2 è stato messo a punto già da diverso tempo. Per la precisione http2 venne proposto come standard pronto all’uso nel 2014. Dopo anni di lavoro e di sviluppo svolto dall’Internet Engineering Task Force, l’http2 si presenta come prima nuova versione del protocollo http 1.1, diventato standard nel lontano 1999.

Rispondiamo ad alcune delle domande più frequenti tra i non addetti ai lavori:

  • Ma di cosa si occuperà?
  • È già disponibile ? Quali novità porta con sé? E cosa dobbiamo fare per averlo?

Daremo le risposte a tutto, ma prima è importante capire da dove nasce l’http2 e, soprattutto, con quali presupposti nasce.

Gli inizi: HTTP1.1

l’HTTP1.1 è uscito nel 1999 come prima risposta alle problematiche presentate dal suo predecessore HTTP/1.0 che non prendeva in considerazione gli effetti del caching, degli host virtuali e dei proxy. In tutte le sue forme l’HTTP1.1 presentava dei requisiti molto più rigorosi, proprio per poter rendere possibile l’implementazione e il corretto funzionamento di tutte le sue funzionalità.

Oggi il web è cambiato tantissimo rispetto al 1999

I siti web sono dinamici, appoggiandosi a nuovi strumenti come WordPress o a librerie di script come JavaScript che offrono un’immensità di risorse da essere caricate per ogni singola web page. Nonostante gli sviluppatori web siano diventati sempre più creativi, seguendo ed inventando tecniche per andare oltre alle limitazioni poste dall’http1.1 (minificazione degli script, Lazy Loading, CSS Sprite ecc.), col tempo è diventato sempre più chiaro che serviva qualcosa di nuovo. Il web aveva bisogno di un protocollo fatto e progettato per i propri bisogni, che togliesse il bisogno di tutte queste tecniche e che migliorasse i tempi di risposta di tutti i siti web.

Sviluppo

Un primo ammodernamento è stato rappresentato da SPDY (pronunciato “Speedy”), un protocollo di livello applicativo dedicato al trasporto di contenuti web. Agli inizi del suo sviluppo godeva del pieno appoggio di Google, azienda promotrice del suo sviluppo. Oggi SPDY è implementato nei seguenti browser:

  • Mozilla
  • Firefox
  • Opera
  • Safari

Stando ai piani, SPDY non avrebbe dovuto sostituire interamente il protocollo http, piuttosto si sarebbe dovuto integrare con http per ridurre la latenza delle pagine web, senza però intaccare la compatibilità delle applicazioni lato server.

Durante lo sviluppo di SPDY, Google si accorge del grande potenziale di un progetto allargato. È nel 2015 che avviene il vero cambio di rotta significativo: Google decide di non supportare più lo sviluppo di SPDY, preferendogli http/2.

HTTP/2

HTTP/2 è quindi l’ultima versione del protocollo HTTP. Dopo intense riflessioni, è stato deciso di utilizzare comunque SPDY. SPDY infatti divenne la base di partenza per lo sviluppo del nuovo protocollo di rete usato dal World Wide Web.

Il progetto è stato avviato dal Working Group Hypertext Transfer Protocol dell’Internet Engineering Task Force. Il gruppo di lavoro aveva degli obbiettivi e delle problematiche abbastanza serie da risolvere come:

  • Trovare un metodo di esecuzione che consentisse ai client ed ai server di utilizzare HTTP1, HTTP/2 e, addirittura, protocolli non HTTP.
  • Mantenere vivi i casi d’uso più comuni di HTTP come browser desktop e mobile, API web, firewall o server proxy.
  • Migliorare velocità di caricamento, tenendo presente anche:
    • Il problema legato al “head-of-line blocking” dell’HTTP1.1
    • La compressione dei header HTTP.

Nuove funzionalità e problemi risolti

Head-of-line blocking

Nelle modalità di funzionamento dell’HTTP/1 c’è il problema comunemente noto come “head-of-line blocking”, dove una sola richiesta alla volta può essere fatta su una connessione attiva.

Per risolvere questo problema, venne integrato nell’HTTP/1.1 una tecnica chiamata “pipelining”. Molto brevemente l’esecuzione dell’HTTP/1.1:

  • SENZA PIPELINING: ogni richiesta deve essere soddisfatta prima di poter fare ulteriori richieste.
  • CON PIPELINING: ogni nuova richiesta può essere fatta anche senza dover aspettare che quella precedente venga soddisfatta.

È bene notare che il pipelining non è mai stata supportata dalla maggior parte dei server. Infatti, oltre a presentare dei seri rischi di sicurezza, è molto difficile da implementare. Il pipelining come tecnica deve scegliere anche su quali connessioni immettere le richieste ricevute e lo fa in modo confusionario.

A tutto questo risponde l’http/2.

L’http/2 presenta un nuovo modo di rispondere a richieste, il multiplexing. Così, è possibile che più richieste e più risposte siano immesse nella comunicazione allo stesso tempo.

Server Push

Una delle novità presenti nell’http2/2 è il Server Push. Server Push è una nuova funzionalità che se usata correttamente può migliorare i tempi di risposta di un sito.

Solitamente, durante la navigazione, un browser richiede una pagina e riceve l’HTML della pagina come risposta, il browser poi deve leggere tutto l’HTML ed emettere tutte le richieste prima che il server possa iniziare a mandare il JavaScript e il CSS del caso. Con Server Push, il server forza l’invio di tutte le informazioni (HTML, CSS, ecc.) che il server crede saranno necessarie al client, senza previa richiesta, saltando di fatto la doppia fase iniziale di richiesta.
Come detto però il Server Push può essere una lama a doppio taglio. Se usato incorrettamente può danneggiare significativamente le performance del sito.

Comments are closed.