HTTP/2

Parliamo di HTTP/2

Ciao SiteGrounders! Visto che la settimana scorsa mi sono concentrato su certificati SSL e HTTPS mi sembrava giusto dedicare spazio questa volta al protocollo HTTP/2 di cui ho solo accennato qualcosa nel precedente post. Che cos’è dunque nello specifico questo HTTP/2 e perché è importante averlo e sapere cosa sia?

Internet, come lo conosciamo oggi, non sarebbe mai esistito senza l’HTTP. Esso è sempre stato il cuore e l’anima stessa di internet e ciò che ci consente di leggere le ultime notizie, ordinare articoli online, guardare video su YouTube e accedere ai nostri siti web preferiti su tutti i tipi di dispositivi: workstation, laptop, smartphone, tablet e persino e-reader che offrono funzionalità di navigazione.

Tuttavia il protocollo HTTP per molti anni, sin da quando fu rilasciata la versione 1.1 nel 1999, non ha visto modifiche sostanziali; ecco perché quando nel 2015 fu rilasciato HTTP/2 per molte compagnie come la nostra fu un momento di grande eccitazione. Ovviamente in SiteGround non ci siamo fatti sfuggire l’occasione e, già poco dopo il suo rilascio, tutti i nostri server lo supportavano.

Perché HTTP aveva bisogno di un aggiornamento?

I siti web moderni fanno centinaia di richieste HTTP e il protocollo HTTP/1.1 non era ben progettato per queste prestazioni e per le crescenti esigenze degli utenti. Nel decennio prima della comparsa dell’HTTP/2 nacquero innumerevoli nuove tecnologie e gli sviluppatori web sfoggiavano tutta la loro creatività per superare i limiti imposti dall’HTTP/1.1. Si era dunque arrivati a un punto in cui il protocollo stesso aveva bisogno di cambiare e introdurre nuove funzionalità per migliorare le performance di tutti i siti internet.

Cosa c’è di nuovo in HTTP/2?

HTTP/2 è basato sul protocollo SPDY (pronunciato “technologyy”) e si concentra sui miglioramenti delle prestazioni. Offre i seguenti miglioramenti:

Multiplexing per un trasferimento dati più veloce

I siti web moderni fanno molte richieste ai browser per la semplice visualizzazione di una pagina. All’inizio, HTTP/1.0 consentiva di effettuare una sola richiesta tramite una singola connessione TCP. Con HTTP/1.1 questo fu migliorato in modo che i browser potessero effettuare più richieste per caricare più risorse contemporaneamente. Sfortunatamente non fu possibile però risolvere un altro problema, l’head-of-line blocking.

Quando viene utilizzato HTTP/1.1, il flusso delle richieste è solitamente il seguente: il browser invia una richiesta e deve attendere la risposta del server per inviare la richiesta successiva. I siti web moderni dispongono di oltre 100 oggetti e, anche quando i browser utilizzano più connessioni, questo modo di gestire le richieste può richiedere molto tempo a causa dell’head-of-line blocking.

La soluzione introdotta con l’HTTP/2 è chiamata multiplexing: essa semplifica la richiesta e la ricezione di più oggetti web alla volta. Ecco un esempio di come HTTP/2 gestisce le stesse tre richieste mostrate nel diagramma precedente:

Come si può vedere dal secondo diagramma, quando viene utilizzato HTTP/2 l’utente invia più richieste e può riceverle in qualsiasi ordine, pertanto, le pagine si caricano più velocemente. Ad esempio, se il server ha bisogno di più tempo per gestire la seconda richiesta, la consegna del terzo oggetto non verrà bloccata ma avverrà prima.

Email di accesso inviata!

Iscriviti per
altri fantastici contenuti!

Iscriviti per ricevere la nostra newsletter mensile con gli ultimi contenuti utili e le offerte SiteGround.

Grazie!

Per favore, controlla la tua email per confermare l’iscrizione.

Compressione degli header per il trasferimento di meno dati

Il secondo grande miglioramento aggiunto da HTTP/2 è relativo agli header. I client utilizzano gli header per informare i server di quali informazioni hanno bisogno e in quale formato. Ad esempio, un browser web di solito invia header per informare i server che supporta i dati compressi gzip. Il problema è che, non solo gli header non cambiano molto tra una richiesta e l’altra, ma con HTTP/1.1 ogni richiesta che veniva fatta, conteneva un header nel quale veniva dichiarato lo stato della richiesta e altre informazioni.

HTTP/2 risolve questo problema: non è più necessario scambiarsi queste informazioni perché tutti gli header vengono compressi all’interno di un blocco unico e questo rende le connessioni più leggere e più veloci. Ciò significa che una pagina web media che contiene 80-90 oggetti può ora essere caricata molto più velocemente perché il browser web avrà bisogno di un solo processo per inviare gli header di tutti gli oggetti.

Gestione delle richieste in base alla priorità

Il terzo problema che risolve HTTP/2 è causato proprio dal multiplexing e dalla compressione degli header. Alcuni oggetti sono più importanti di altri, ad esempio, gli oggetti CSS per un sito dovrebbero essere consegnati per primi in modo che il sito possa essere visualizzato correttamente. Se si utilizza il multiplexing non si può essere sicuri che essi siano consegnati prima di altri oggetti.

Con HTTP/2 i client sono in grado di comunicare con il server e indicare priorità per determinati oggetti; in questo modo i server web possono decidere quali oggetti devono essere consegnati prima ai client. Poiché il protocollo stesso supporta la gestione delle priorità, gli sviluppatori web non devono preoccuparsi delle modifiche che apportano alle loro applicazioni. I moderni browser si prenderanno cura delle priorità e della gestione dei flussi di dati in HTTP/2.

HTTP/2 ha bisogno di un certificato SSL

HTTP/2 è ormai attivo da tempo su tutti i browser e lo stai già utilizzando se utilizzi un browser aggiornato che lo supporta. Per il tuo sito ti ricordo però che è indispensabile fare il passaggio da HTTP a HTTPS per poter sfruttate l’HTTP/2. Come già spiegato nel post di settimana scorsa, SiteGround ti permette di forzare l’HTTPS in un solo click per il tuo sito. Non avrai quindi problemi a sfruttare le potenzialità anche dell’HTTP/2.

Con questo approfondimento spero di aver chiarito maggiormente cosa sia HTTP/2 e la sua enorme importanza per i siti web di oggi.
Ci sentiamo alla prossima con un post dedicato a un altro servizio SiteGround! Nel frattempo se avete domande, curiosità o volete condividere la vostra esperienza, inserite qui il vostro commento!

Luca Rodino

Partners & Affiliates Program Manager

Luca gestisce le partnership e il programma affiliati in SiteGround, oltre ad essere in prima linea nello sviluppo dei servizi per il mercato italiano. Lavora nel mondo del web da oltre 10 anni come manager d'azienda e consulente per la trasformazione digitale, sviluppando relazioni con brand e persone in tutto il mondo. Amante della natura, dei viaggi e del caffè. Appena può, Luca si avventura in posti esotici, preferibilmente in mezzo al nulla… anche se è difficile trovare un buon Espresso lì.

Commenti ( 2 )

avatar autore

Alessandro

Jul 21, 2021

Ciao, sono vostro cliente, ho forzato l'https però quando analizzo il mio sito mi dice che non ho attivo l'http/2: https://clip2net.com/s/4cLrY6L Puoi aiutarmi?

Rispondi
avatar autore

Luca Rodino Il Team di SiteGround

Jul 21, 2021

Ciao Alessandro, ho fatto un check al volo tramite Inspect su Chrome del tuo sito e sembra che il protocollo HTTP/2 funzioni regolarmente (dovrebbe infatti essere attivo di default). Nel caso tu voglia fare un doppio check puoi fare un'ispezione pagina su Chrome andando sul tuo sito e cliccando con il tasto destro > Ispeziona. Seleziona la voce "Network" e ricarica la pagina. Vedrai nella colonna "Protocol" se stai utilizzando o meno HTTP/2. Puoi anche fare un controllo via chat con un nostro operatore e verificare subito se qualcosa non funziona nel modo corretto.

Rispondi

Inizia la discussione

Sei pronto a iniziare?