Home News Il successore del protocollo HTTP 1.1: il perché dell’HTTP 2.0
Il successore del protocollo HTTP 1.1: il perché dell’HTTP 2.0 PDF Stampa E-mail
Venerdì 06 Marzo 2015 15:00

Tutti gli utenti vogliono che il Web corra veloce e che le informazioni vengano fornite nell’istante stesso in cui si preme il pulsante sul mouse o l’Invio sulla tastiera. Oltre a migliorare la tecnologia delle connessioni Internet e rendere più performanti i servizi di hosting, come quelli offerti da Aruba, ci sono molte altre questioni da affrontare e che, al momento, rappresentano il collo di bottiglia della Internet moderna. Uno di questi è l’attuale protocollo HTTP 1.1, che rappresenta il cuore della Rete.

Come il mondo Web sia arrivato al protocollo HTTP 1.1 è un argomento di cui si è già discusso. Ciò di cui non si è parlato è di cosa ci sia dopo l’attuale HTTP, di cosa riserva il futuro all’Internet che verrà.

Ed è proprio la continua ed estenuante ricerca di un Web sempre più veloce che ha portato alla maturazione di un nuovo protocollo indicato con il nome HTTP 2.0.

I più informati, sanno già che l’HTTP 2.0 è stato ufficialmente rilasciato come bozza finale e che è in attesa ora dell’approvazione da parte degli enti preposti (RFC) per diventare uno standard a tutti gli effetti.

Certo è che un protocollo come l’HTTP 2.0 non nasce dal nulla, per cui è interessante cercare di scoprire come si è arrivati alla definizione di questo nuovo metodo di comunicazione Web.

A dare il via alla riscrittura dell’attuale HTTP 1.1 è stata Google. L’azienda di Mountain View, insoddisfatta delle prestazioni garantite dal protocollo rilasciato per il Web nel 1999, ha deciso di dare il via alla stesura di un proprio protocollo, con la speranza che potesse presto diventare il nuovo standard di riferimento, soppiantando definitivamente l’antiquato HTTP.

A questo nuovo protocollo, Google diede il nome non casuale di SPDY, che, con suono anglofono, sembra suggerire la parola speedy, che, guarda caso, in inglese significa proprio rapido e pronto.

La lentezza del protocollo HTTP 1.1 è la limitazione principale del protocollo stesso e SPDY avrebbe dovuto battere il concorrente proprio su questo punto. L’obiettivo era rendere le comunicazioni fra browser client e server ancora più veloci.

I risultati ottenuti da questo nuovo protocollo (prontamente integrato in browser come Chrome e in web server come Nginx) spinsero la Internet Engineering Task Force (IETF) a usare SPDY come base per la definizione dell’HTTP 2.0 che avrebbe dovuto soppiantare il vetusto HTTP 1.1.

Pochi giorni fa la notizia: a circa 16 anni dal rilascio di HTTP 1.1, HTTP 2.0 è pronto a prendere il suo posto, proponendosi così come il prossimo standard del Web.

Le specifiche dell’HTTP 2.0 sono dunque definite e, anche se esistono alcune differenze fra lo SPDY originale di Google e l’attuale HTTP 2.0, in realtà Google stessa ha deciso di interrompere lo sviluppo di SPDY, di eliminarne il supporto dal suo browser Chrome e di abbracciare appieno il nuovo HTTP 2.0.

Perché nasce HTTP 2.0: l’idea del multiplexing

Per capire su cosa l’HTTP 2.0 è migliore rispetto alla precedente versione, facciamo un piccolo paragone tratto dalla vita quotidiana.

Un’analogia dalla vita quotidiana

Si pensi, per un attimo, a quando si va a fare la spesa e ci si ferma davanti al banco servito dei salumi. Ora si metta in conto di trovarsi in due diverse occasioni al banco affettati, all’orario di punta e con una decina di persone in fila per attendere il proprio turno. Nel primo caso, al banco c’è un solo salumiere con cinque affettatrici disponibili, mentre nel secondo caso al medesimo banco ci sono cinque salumieri e cinque affettatrici disponibili.

Non ci vuole un genio per capire in quale occasione ci si sbrigherà prima. Nel caso in cui al banco vi sia solo un salumiere, ciascuna persona in file dovrà attendere che quello davanti a sé finisca la propria spesa prima di riuscire a chiedere ciò di cui ha necessità. E il tempo di attesa dipende anche da quanta spesa la persona precedente deve fare, quindi dal tempo che la persona precedente tiene occupato l’unico salumiere disponibile. Se si è in decima posizione, bisognerà attendere un bel po’ prima di poter giungere al banco e chiedere ciò che si desidera.

Nel caso in cui cinque salumieri servano altrettante persone contemporaneamente, per il decimo cliente in fila, l’attesa sarà sicuramente inferiore, anche se a priori non si può sapere quanto tempo le persone davanti a lui terranno occupati i rispettivi salumieri.

Ciò che conta è che la diminuzione dell’attesa è funzionale all’ottimizzazione del servizio, per cui più sono i salumieri a disposizione, minore è il tempo che si dovrà attendere per essere serviti, anche all’orario di punta.

L’HTTP 1.1 come il salumiere di bottega, l’HTTP 2.0 come il grande ipermercato

Ora che ci si creda o no, l’analogia del salumiere funziona anche per il Web. Il protocollo HTTP 1.1 risale a 25 anni fa ed è come se paragonassimo il salumiere di fiducia di 25 anni fa nella sua piccola bottega con i banchi salumi degli ipermercati moderni, dove il personale composto da un numero maggiore di salumieri serve contemporaneamente più clienti, riducendone l’attesa.

La simultaneità nel servire le richieste è una peculiarità che manca nel protocollo HTTP 1.1, che non aveva questo tipo di necessità all’epoca del rilascio, quando cioè i siti erano leggeri, le connessioni lente, il traffico inferiore e gli hardware computazionali dei server molto limitati.

Questo significa che oggi quando un client come il browser richiede una pagina Web a un server, ogni risorsa viene richiesta una alla volta attraverso una singola connessione. Come se dall’altra parte della Rete ci fosse un solo salumiere che serve le diverse richieste singolarmente.

Il successore del protocollo HTTP 1.1: il perché dell'HTTP 2.0

Il browser attende di ricevere ogni risposta alla sua richiesta, prima di poterne effettuare un’altra. Per ovviare alla questione, i browser più moderni effettuano due connessioni alla volta al medesimo server, cercando di suddividere le richieste su ciascun canale e si passa così alla situazione in cui da un singolo salumiere se ne aggiungono altri pronti a servire.

Il successore del protocollo HTTP 1.1: il perché dell'HTTP 2.0

Su ogni singola connessione, comunque, il browser deve attendere che il server risponda, prima di poter inoltrare una nuova richiesta.

Per quanto si possano quindi moltiplicare le connessioni, quindi, resta comunque un barlume di inefficienza, che si concretizza nell’attesa che il browser deve comunque sopportare prima di poter inviare una nuova richiesta.

Poiché una pagina Web moderna ha più di 100 risorse al suo interno, si capisce bene come vi sia una perdita di tempo notevole e, quindi, un rallentamento di non poco conto.

La soluzione a questa impasse sta nel protocollo HTTP 2.0

Si immagini ora che ogni salumiere dei cinque su citati sia capace di servire contemporaneamente più persone, nel senso che mentre affetta e consegna i salumi al primo cliente, chiede al secondo cosa voglia e sia già pronto a fornirgli i prodotti di cui necessita e via discorrendo.

Questo è il metodo del multiplexing integrato nel protocollo HTTP 2.0. Pur usando una singola connessione (ma in realtà se ne potrebbero usare anche più di una), con l’HTTP 2.0 il browser non deve attendere che vi sia la risposta alla prima richiesta per poterne inviare una nuova.

Il successore del protocollo HTTP 1.1: il perché dell'HTTP 2.0

In questo modo si ottengono diversi benefici:

  • il browser non resta nulla facente nei periodi di attesa, ma si occupa di renderizzare ogni risorsa della pagina man a mano che questa si rende disponibile, richiedendo di continuo le nuove risorse di cui ha necessità;
  • si previene il problema del blocco head-of-line, ossia della lunga attesa dovuta a una risorsa che occupa molto tempo a essere servita dal server al client;
  • si migliora l’efficienza di ogni singola connessione;
  • si migliora la velocità di navigazione e quindi l’esperienza utente.

Le altre migliorie dell’HTTP 2.0

In realtà, anche se il discorso si è concentrato sul concetto del multiplexing, le migliorie introdotte nell’HTTP 2.0 non si limitano solo a questo e sono molte. In breve:

  • introduzione della tecnologia Server Push. Per migliorare ulteriormente la velocità di interazione fra client e server, il protocollo HTTP 2.0 introduce una tecnologia che permette al server di fornire le risorse di una pagina ancora prima che il client ne faccia richiesta;
  • miglioramento della sicurezza: anche se non è obbligatorio come lo era nel protocollo SPDY, il protocollo introduce l’opportunità di lavorare con la sua controparte sicura HTTPS per migliorare la sicurezza delle connessioni client-server;
  • minimizzazione dell’handshake iniziale sul protocollo HTTPS;
  • prioritizzazione dei contenuti;
  • compressione opzionale degli haeder;

e tanto altro ancora.

Cosa significa HTTP 2.0 nella vita di tutti i giorni

Poiché un’immagine vale più di mille parole e un video vale più di un milione di immagini, per capire cosa significa HTTP 2.0 all’atto pratico nella vita di tutti i giorni è sufficiente guardare il seguente video di un esperimento condotto in parallelo usando HTTP 1.1 e HTTP 2.0.

Come si può notare, cambiano drasticamente i tempi di caricamento delle risorse, il Web si ottimizza e si velocizza, migliorando l’esperienza utente.

Browser e Web server che supportano HTTP 2.0

Anche se la notizia del protocollo HTTP 2.0 come bozza finale è molto recente, in realtà i browser e alcuni Web server supportano il protocollo SPDY 3.1/HTTP 2.0 da qualche tempo.

Chrome e Firefox supportano questi protocolli ormai da tempo, Apple ha aggiunto il supporto a SPDY durante l’autunno 2014 con l’avvento di Safari 8, mentre Internet Explorer lo supporta a partire dalla versione 11, ma solo se il browser viene eseguito su Windows 8.

Dal punto di vista mobile, Google Chrome Mobile usa lo stesso codice della versione Desktop per cui i protocolli su citati sono già supportati, mentre Apple ha aggiunto il supporto necessario al Safari iOS a partire dalla versione 8 del sistema operativo mobile.

Per quel che riguarda i Web server, Nginx supporta perfettamente SPDY e ha già pianificato il supporto a HTTP 2.0, mentre Apache supporta SPDY/HTTP 2.0 attraverso il modulo mod_spdy.

Altri Web server come IIS non supportano ancora il protocollo HTTP 2.0 (in realtà, IIS lo supporta solo nella versione Technical Preview di Windows 10), ma in questi casi si può ricorrere a un sistema di reverse proxy basato sulla piattaforma HAProxy da posizionare all’accesso al Web server esistente.

Per quanto riguarda le piattaforme online, alcuni servizi come WordPress.com e CloudFlare supportano già il protocollo HTTP 2.0.

 

ArubaQuesto articolo è offerto da Aruba.it. Aruba gestisce una propria rete di Data Center a livello Europeo ed è leader nell’erogazione di servizi di hosting condiviso in Italia con oltre 1 milione di clienti attivi. L’offerta di hosting condiviso include diverse soluzioni per il singolo professionista o l’azienda, verifica la migliore per te.  Aruba S.p.A., fondata nel 1994, è la prima società in Italia per i servizi di web hosting, e-mail, PEC e registrazione domini, la società gestisce oltre 2 milioni di clienti. In aggiunta ai servizi di web hosting, Aruba fornisce anche tutti una serie di servizi come server dedicati, housing e colocation o servizi managed. Aruba propone anche tutte le soluzioni nell’ambito dell’e-Security, come la firma digitale, la PEC e la conservazione sostitutiva.

 

Tutorial

Vuoi approfondire degli argomenti specifici? Segui i miei tutorial, per dubbi o domande contattami.

Vai ai tutorial

Flickr

Guarda le mie foto su Flickr. Hai bisogno di foto particolari? Vuoi imparare a fotografare? Contattami
flickr_logo

Servizi Online

Vuoi predisporre il tuo sito web personalizzato? Hai bisogno di aiuto o consulenza?

Acquista i servizi online

Contattami

Per approfondimenti o informazioni su corsi di formazione o lavori contattami.

Richiedi uno scambio link con il mio sito.