L’Hyper Text Transfer Protocol (HTTP), il semplice, limitato e alla fine noioso protocollo a livello di applicazione costituisce la base del World Wide Web. In sostanza, HTTP consente il recupero delle risorse collegate alla rete disponibili in tutto il mondo cibernetico e si è evoluto nel corso dei decenni per fornire un mezzo di comunicazione digitale rapido, sicuro e ricco.

Noi di Kinsta siamo fortemente coinvolti nell’ottimizzazione dei tempi di caricamento dei siti web ospitati sulla nostra piattaforma e in passato abbiamo rilasciato numerose guide sull’argomento, basta dare un’occhiata alla Guida all’ottimizzazione della velocità dei siti web.

Dato che siamo sempre all’avanguardia nelle nuove tecnologie, abbiamo fatto in modo che l’intero sito web e il pannello di amministrazione di Kinsta siano eseguiti su HTTP/2 e che la nostra nuova infrastruttura Google Cloud supporti HTTP/2 per tutti i nostri clienti. Questa guida estensa spiega cos’è HTTP/2 a utenti finali, sviluppatori e aziende che perseguono l’innovazione. Dalle informazioni di base agli argomenti più avanzati, qui c’è tutto quello che dovete sapere su HTTP/2.

Questa guida mette in evidenza i seguenti aspetti chiave di HTTP/2:

Che cos’è l’HTTP/2?

L’HTTP è stato proposto in origine da Tim Berners-Lee, il pioniere del World Wide Web che ha progettato il protocollo applicativo pensando alla semplicità per eseguire funzioni di comunicazione di dati ad alto livello tra web-server e client.

La prima versione documentata di HTTP fu rilasciata nel 1991 come HTTP0.9, che nel 1996 ha portato all’introduzione e al riconoscimento ufficiali di HTTP1.0. Ha fatto seguito HTTP1.1 nel 1997 e, da allora, il protocollo ha ricevuto piccoli miglioramenti periodici.

Timeline HTTP
Timeline HTTP

Nel febbraio del 2015, l’HTTP Working Group della Internet Engineering Task Force (IETF) ha rivisto l’HTTP e sviluppato la seconda versione principale del protocollo dell’applicazione come HTTP/2. Nel maggio del 2015, la specifica di implementazione HTTP/2 è stata ufficialmente standardizzata in risposta al protocollo SPDY di Google, compatibile con HTTP. Il confronto tra HTTP/2 e SPDY continua in tutta la guida.

Che Cos’È un Protocollo?

Il dibattito su HTTP/2 e HTTP1 deve procedere con una breve premessa sul termine Protocollo usato frequentemente in questa guida. Un protocollo è un insieme di regole che governano i meccanismi di comunicazione dei dati tra client (ad esempio i browser utilizzati dagli utenti di Internet per richiedere informazioni) e server (i computer che contengono le informazioni richieste).

I protocolli di solito consistono in tre parti principali: Header, Payload e Footer. L’header è posizionato prima del payload e contiene informazioni come gli indirizzi di origine e di destinazione, nonché altri dati (come dimensioni e tipo) relativi al payload. Il payload è l’informazione effettiva trasmessa usando il protocollo. Il footer segue il payload ed ha la funzione di campo di controllo per instradare le richieste client-server ai destinatari previsti, insieme all’intestazione, per garantire che i dati del payload vengano trasmessi senza errori.

Posta HTTP/2
Mail HTTP/2

Il sistema è simile al servizio di posta. La lettera (Payload) viene inserita in una busta (Header) con l’indirizzo di destinazione scritto sopra e sigillata con colla e francobollo (Footer) prima di essere spedita. Solo che la trasmissione di informazioni digitali sotto forma di 0 e 1 non è così semplice e richiede una nuova dimensione di innovazione in risposta ai crescenti progressi tecnologici che emergono con lo sviluppo esplosivo dell’uso di Internet.

In origine, il protocollo HTTP disponeva di comandi di base: GET, per recuperare informazioni dal server, e POST, per consegnare le informazioni richieste al client. Questo semplice e apparentemente noioso insieme di pochi comandi per ottenere dati (GET) e ricevere una risposta (POST) ha essenzialmente costituito la base per costruire anche altri protocolli di rete. Il protocollo è un altro passo in avanti per migliorare l’esperienza utente e l’efficacia di Internet che richiede l’implementazione di HTTP/2 per migliorare la presenza online.

Obiettivo della Creazione di HTTP/2

Dalla sua nascita all’inizio degli anni ’90, HTTP ha visto solo alcune importanti revisioni. La versione più recente, HTTP 1.1, ha servito il cyber mondo per oltre 15 anni. Nell’attuale epoca di aggiornamenti dinamici delle informazioni, formati media ad alto consumo di risorse ed eccessiva inclinazione verso le prestazioni, le pagine web hanno reso obsolete le vecchie tecnologie di protocollo. Queste tendenze richiedono modifiche significative ad HTTP/2 per migliorare l’esperienza di Internet.

 Esperienza Internet
Esperienza Internet

L’obiettivo primario della ricerca e sviluppo di una nuova versione di HTTP è incentrato su tre qualità raramente associate a un singolo protocollo di rete senza che si avverta la necessità di tecnologie di rete aggiuntive: semplicità, alte prestazioni e robustezza. Questi obiettivi vengono raggiunti introducendo funzionalità che riducono la latenza nell’elaborazione delle richieste dei browser con tecniche quali multiplexing, compressione, prioritizzazione delle richieste e push del server.

Meccanismi come il controllo del flusso, l’aggiornamento e la gestione degli errori funzionano come miglioramenti del protocollo HTTP per gli sviluppatori per garantire elevate prestazioni e resilienza delle applicazioni “web based”.

Il sistema collettivo consente ai server di rispondere in modo efficiente con più contenuti di quelli originariamente richiesti dai client, eliminando l’intervento dell’utente per chiedere continuamente informazioni fino a quando il sito web non viene caricato completamente sul browser. Ad esempio, la funzionalità Server Push con HTTP/2 consente ai server di rispondere con i contenuti completi di una pagina diversi rispetto alle informazioni già disponibili nella cache del browser. Una efficiente compressione dei file header HTTP riduce al minimo l’overhead del protocollo e migliora le prestazioni ad ogni richiesta del browser e risposta del server.

Le modifiche ad HTTP/2 sono progettate per mantenere l’interoperabilità e la compatibilità con HTTP1.1. Si prevede che i vantaggi di HTTP/2 aumenteranno nel tempo sulla base di esperimenti nel mondo reale e la sua capacità di gestire i problemi relativi alle prestazioni nel confronto reale con HTTP1.1 influirà notevolmente sulla sua evoluzione a lungo termine.

“….non stiamo sostituendo tutti di HTTP – i metodi, i codici di stato e la maggior parte delle intestazioni che utilizzate oggi saranno gli stessi. Invece, stiamo ridefinendo il modo in cui viene utilizzato “sul filo”, in modo che sia più efficiente, e che sia più gentile nei confronti di internet stesso….”. Mark Nottingham, presidente dell’HTTP Working Group dell’IETF e membro del W3C TAG.  Fonte

È importante notare che la nuova versione di HTTP è un’estensione del suo predecessore e non si prevede che sostituirà presto HTTP1.1. L’implementazione di HTTP/2 non consentirà il supporto automatico per tutti i tipi di crittografia disponibili con HTTP1.1, ma sicuramente aprirà le porte a migliori alternative o ulteriori aggiornamenti di compatibilità della crittografia nel prossimo futuro. Tuttavia, confronti di funzionalità come HTTP/2 rispetto a HTTP1 e SPDY rispetto a HTTP/2 non possono far altro che presentare l’ultimo protocollo applicativo come vincitore in termini di prestazioni, sicurezza e affidabilità.

Crittografia di sicurezza HTTP/2
Crittografia di sicurezza HTTP/2

Cosa C’Era di Sbagliato in HTTP1.1?

HTTP1.1 era limitato all’elaborazione di una sola richiesta in sospeso per connessione TCP, costringendo i browser a utilizzare più connessioni TCP per elaborare più richieste contemporaneamente.

Tuttavia, l’utilizzo di un numero eccessivo di connessioni TCP in parallelo porta a una congestione di TCP che provoca un’ingiusta monopolizzazione delle risorse di rete. I browser che utilizzano connessioni multiple per elaborare richieste aggiuntive occupano una quantità maggiore delle risorse di rete disponibili, riducendo quindi le prestazioni della rete per altri utenti.

Richieste HTTP
Richieste HTTP

L’emissione di più richieste dal browser provoca anche la duplicazione dei dati sui cavi di trasmissione dei dati, che a loro volta richiedono protocolli aggiuntivi per estrarre, in corrispondenza dei nodi finali, le informazioni desiderate prive di errori.

L’industria di Internet è stata naturalmente costretta ad aggirare questi vincoli con pratiche come, tra le altre, la condivisione dei domini, la concatenazione, l’integrazione dei dati e lo sprite. L’uso inefficace delle connessioni TCP sottostanti con HTTP1.1 porta anche a una scarsa priorità delle risorse, causando un degrado esponenziale delle prestazioni man mano che le applicazioni web crescono in termini di complessità, funzionalità e portata.

Frazionamento del dominio
Frazionamento del dominio

Il Web si è evoluto ben oltre la capacità delle obsolete tecnologie di rete basate su HTTP. Le qualità fondamentali di HTTP1.1, sviluppate oltre un decennio fa, hanno scoperto diverse imbarazzanti lacune nelle prestazioni e nella sicurezza.

Cookie Hack, ad esempio, consente ai criminali informatici di riutilizzare una sessione di lavoro precedente per compromettere le password degli account, perché HTTP1.1 non fornisce funzionalità di endpoint-identity di sessione. Anche se simili problemi di sicurezza continueranno a perseguitare HTTP/2, il nuovo protocollo applicativo è progettato con capacità di sicurezza migliori, come l’implementazione migliorata delle nuove funzionalità TLS.

Aggiornamenti delle Funzionalità di HTTP/2

Flussi Multiplex

La sequenza bidirezionale dei frame in formato testo inviati tramite il protocollo HTTP/2 e scambiati tra il server e il client è nota come “stream”. Precedenti iterazioni del protocollo HTTP erano in grado di trasmettere solo un flusso alla volta, con un certo ritardo tra ciascuna trasmissione del flusso.

La ricezione di grandi quantità di contenuti multimediali tramite flussi individuali inviati uno ad uno è inefficiente oltre che dispendiosa in termini di risorse. Le modifiche introdotte con HTTP/2 hanno contribuito a stabilire un nuovo livello di framing binario per risolvere questi problemi.

Questo livello consente a client e server di disintegrare il payload HTTP in una piccola sequenza interlacciata di frame, indipendente e gestibile. Questa informazione viene quindi riassemblata all’altra estremità.

Flussi HTTP/2
Flussi HTTP/2

I formati di frame binari consentono lo scambio di sequenze bidirezionali indipendenti multiple, aperte contemporaneamente, senza latenza tra flussi successivi. Questo approccio presenta una serie di vantaggi di HTTP/2 spiegati qui di seguito:

  • Le richieste e le risposte multiple in parallelo non si bloccano a vicenda.
  • Una singola connessione TCP viene utilizzata per garantire un utilizzo efficace delle risorse di rete nonostante la trasmissione di più flussi di dati.
  • Non è necessario applicare inutili hack di ottimizzazione – come sprite di immagini, concatenazione e condivisione del dominio – che compromettono altre aree delle prestazioni della rete.
  • Latenza ridotta, prestazioni web più veloci, posizionamento nei motori di ricerca migliore.
  • OpEx e CapEx ridotti nell’esecuzione delle risorse del network e IT.

Con questa funzionalità, i pacchetti dati provenienti da più flussi vengono essenzialmente mixati e trasmessi su una singola connessione TCP. Questi pacchetti vengono quindi divisi all’estremità di ricezione e presentati come flussi di dati individuali. La trasmissione simultanea di più richieste parallele utilizzando HTTP versione 1.1 o precedente richiedeva connessioni TCP multiple, che intrinsecamente creavano strozzature nelle prestazioni complessive del netowrk nonostante la trasmissione di più flussi di dati a velocità più elevate.

Server Push HTTP/2

Questa funzionalità consente al server di inviare al client ulteriori informazioni memorizzabili nella cache che non sono richieste ma sono previste nelle richieste future. Ad esempio, se il client richiede la risorsa X e si comprende che la risorsa Y fa riferimento al file richiesto, il server può scegliere di inviare Y insieme a X invece di attendere una appropriata richiesta del client.

HTTP/2 push
HTTP/2 push

Il client colloca la risorsa Y in arrivo nella sua cache per un futuro utilizzo. Questo meccanismo consente di salvare un round trip richiesta-risposta e riduce la latenza della rete. Server Push è stato originariamente introdotto nel protocollo SPDY di Google. Gli identificatori di flusso contenenti pseudo intestazioni come :path consentono al server di avviare il Push per informazioni che devono essere memorizzabili nella cache. Il client deve consentire esplicitamente al server di eseguire il push delle risorse memorizzabili nella cache con HTTP/2 o di terminare i flussi trasmessi con un identificatore di flusso specifico.

Altre modifiche HTTP/2 come Server Push aggiornano o invalidano in modo proattivo la cache del client: si parla di “Cache Push”. Le conseguenze a lungo termine sono incentrate sulla capacità dei server di identificare possibili risorse che possano essere spinte ma che il client in realtà non desidera.

L’implementazione di HTTP/2 presenta prestazioni significative per le risorse push. Altri vantaggi di HTTP/2 sono elencati di seguito:

  • Il client salva le risorse inviate nella cache.
  • Il client può riutilizzare queste risorse memorizzate nella cache su pagine diverse.
  • Il server può eseguire il multiplexing delle risorse inviate insieme alle informazioni originariamente richieste all’interno della stessa connessione TCP.
  • Il server può dare la priorità alle risorse inviate, e questo è un fattore chiave di differenziazione delle prestazioni in HTTP/2 rispetto a HTTP1.
  • Il client può rifiutare le risorse inviate per mantenere una repository efficace di risorse nella cache o disabilitare del tutto Server Push.
  • Il client può anche limitare il numero di flussi push multiplexati contemporaneamente.

Funzionalità Push simili sono già disponibili con tecniche non ottimali come le risposte del server Inline to Push, mentre Server Push presenta una soluzione a livello di protocollo per evitare la complessità di hack di ottimizzazione secondari alle funzionalità di base dello stesso protocollo dell’applicazione.

HTTP/2 multiplexa e dà la priorità al flusso di dati push per garantire migliori prestazioni di trasmissione rispetto ad altri flussi di dati richiesta-risposta. Come misura di sicurezza integrata, il server deve essere autorizzato a inviare preventivamente le risorse.

HTTP/2 autorizzato
HTTP/2 autorizzato

Protocolli Binari

L’ultima versione di HTTP si è evoluta in modo significativo in termini di capacità e attributi come la trasformazione da un protocollo di testo a un protocollo binario. HTTP1.x elaborava i comandi di testo per completare i cicli richiesta-risposta. HTTP/2 utilizzerà i comandi binari (in 1s e 0s) per eseguire le stesse attività. Questo attributo riduce le complicazioni con l’inquadramento e semplifica l’implementazione di comandi che sono stati mixati in modo confuso a causa di comandi contenenti testo e spazi opzionali.

Sebbene probabilmente occorreranno maggiori sforzi per leggere i file binari rispetto ai comandi di testo, è più facile per la rete generare e analizzare i frame disponibili in binario. La semantica effettiva rimane invariata.

Protocolli binari
Protocolli binari

I browser che utilizzano l’implementazione di HTTP/2 convertiranno gli stessi comandi di testo in binari prima di trasmetterli sulla rete. Il livello di framing binario non è retrocompatibile con client e server HTTP1.x ed è un fattore chiave per ottenere vantaggi significativi in ​​termini di prestazioni rispetto a SPDY e HTTP1.x. L’utilizzo dei comandi binari per consentire alle aziende Internet e al business online di ottenere i principali vantaggi aziendali è illustrato di seguito con i vantaggi di HTTP/2:

  • Basso overhead nei dati di analisi – una proposta di valore strategico in HTTP/2 rispetto a HTTP1.
  • Meno incline agli errori.
  • Impronta di rete più leggera.
  • Utilizzo efficace delle risorse di rete.
  • Eliminazione dei problemi di sicurezza associati alla natura testuale di HTTP1.x, come gli attacchi response splitting.
  • Abilita altre funzionalità dell’HTTP/2, tra cui compressione, multiplexing, prioritizzazione, controllo del flusso e gestione efficace del TLS.
  • Rappresentazione compatta dei comandi per una più facile elaborazione e implementazione.
  • Efficiente e robusto in termini di elaborazione dei dati tra client e server.
  • Riduzione della latenza di rete e miglioramento del throughput.

Priorità dei Flussi

L’implementazione di HTTP/2 consente al client di fornire la preferenza per determinati flussi di dati. Sebbene il server non sia tenuto a seguire queste istruzioni provenienti dal client, il meccanismo consente al server di ottimizzare l’allocazione delle risorse di rete in base ai requisiti dell’utente finale.

Peso HTTP/2
Peso HTTP/2

La priorità dei flussi funziona con l’assegnazione di Dipendenze e Peso a ciascun flusso. Sebbene tutti gli stream siano intrinsecamente dipendenti l’uno dall’altro, agli stream dipendenti viene anche assegnato un peso compreso tra 1 e 256. I dettagli sui meccanismi di prioritizzazione dello stream sono ancora in discussione.

Nel mondo reale, tuttavia, il server raramente ha il controllo su risorse come connessioni CPU e database. La complessità dell’implementazione stessa impedisce ai server di soddisfare le richieste di priorità del flusso. Ricerca e sviluppo in questo settore sono particolarmente importanti per il successo a lungo termine di HTTP/2, poiché il protocollo è in grado di elaborare più flussi di dati con una singola connessione TCP.

Questa capacità può portare all’arrivo simultaneo di richieste del server che differiscono effettivamente in termini di priorità dal punto di vista dell’utente finale. Il blocco delle richieste di elaborazione del flusso di dati su base casuale compromette l’efficienza e l’esperienza dell’utente finale promesse dalle modifiche apportate da HTTP/2. Allo stesso tempo, un meccanismo di prioritizzazione dei flussi intelligente e ampiamente adottato presenta i vantaggi di HTTP/2 come spiegato di seguito:

  • Utilizzo efficace delle risorse di rete.
  • Riduzione dei tempi di consegna delle richieste del contenuto primario.
  • Miglioramento della velocità di caricamento della pagina e dell’esperienza dell’utente finale.
  • Comunicazione dati ottimizzata tra client e server.
  • Ridotto effetto negativo della latenza della rete.
Carico pagina HTTP/2
Carico pagina HTTP/2

Compressione dell’Header con Stato

Per offrire un’esperienza utente di fascia alta sono necessari siti web ricchi di grafica e contenuti. Il protocollo di applicazione HTTP è senza stato, il che significa che ogni richiesta del client deve includere tutte le informazioni necessarie al server per eseguire l’operazione desiderata. Questo meccanismo fa sì che i flussi di dati trasportino più frame ripetitivi di informazioni in modo tale che il server stesso non debba archiviare informazioni provenienti dalle precedenti richieste del client.

Nel caso di siti che offrono contenuti ricchi di media, i client spingono più frame di intestazione quasi identici che portano ad una maggiore latenza e ad un consumo inutile di risorse di rete limitate. Un mix prioritario di flussi di dati non può raggiungere i desiderati standard prestazionali del parallelismo senza ottimizzare questo meccanismo.

Compressione HTTP/2 HPACK
Compressione HTTP/2 HPACK

L’implementazione di HTTP/2 risolve questi problemi data la capacità di comprimere un gran numero di frame di intestazione ridondanti. Utilizza le specifiche HPACK come approccio semplice e sicuro alla compressione delle intestazioni. Sia il client che il server mantengono un elenco di intestazioni utilizzate nelle precedenti richieste client-server.

HPACK comprime il valore individuale di ciascun header prima che venga trasferito sul server, il quale quindi cerca le informazioni codificate nell’elenco dei valori dell’header trasferiti in precedenza per ricostruire le informazioni dell’header complete. La compressione dell’intestazione HPACK per l’implementazione di HTTP/2 presenta enormi vantaggi in termini di prestazioni, inclusi alcuni dei seguenti:

  • Priorità effettiva del flusso.
  • Utilizzo efficace dei meccanismi multiplexing.
  • Ridotto sovraccarico di risorse: una delle principali preoccupazioni nei confronti tra HTTP/2 e HTTP1 e tra HTTP/2 e SPDY.
  • Codifica le intestazioni di grandi dimensioni e le intestazioni utilizzate di frequente, cosa che elimina la necessità di inviare l’intero frame di intestazione. La dimensione del trasferimento individuale di ciascun flusso di dati si riduce rapidamente.
  • Non vulnerabile ad attacchi tipo CRIME grazie all’utilizzo di flussi di dati con intestazioni compresse.

Similitudini tra HTTP1.x e SPDY

La semantica delle applicazioni sottostanti a HTTP, compresi codici di stato HTTP, URI, metodologie e file di intestazione, rimane la stessa nell’ultima iterazione dell’HTTP/2. Questo si basa su SPDY, l’alternativa di Google a HTTP1.x. Le differenze reali risiedono nei meccanismi utilizzati per elaborare le richieste client-server. Il seguente schema identifica alcune aree di similitudine e miglioramenti occorsi tra HTTP1.x, SPDY e HTTP/2:

HTTP1.x SPDY HTTP2
SSL non richiesto ma raccomandato. SSL richiesto. SSL non richiesto ma raccomandato.
Crittografia lenta. Crittografia veloce. Crittografia ancora più veloce.
Una richiesta client-server per ogni connessione TCP. Richiesta client-server multipla per ogni connessione TCP. Si verifica su un singolo host alla volta. Multi-host multiplexing. Si verifica su più host in un singolo istante.
Nessuna compressione dell’header. Introdotta la compressione dell’header. Compressione dell’header attraverso algoritmi che migliorano le prestazioni e la sicurezza.
Nessuna priorità di flusso. Introdotta la priorità di flusso. Migliori meccanismi di priorità di flusso.

Come funziona HTTP/2 con HTTPS

HTTPS viene utilizzato per stabilire una rete ultra sicura che collega computer, macchine e server per elaborare informazioni riservate su aziende e consumatori. Le banche che elaborano transazioni finanziarie e le istituzioni sanitarie che conservano la documentazione dei pazienti sono obiettivi primari per i reati informatici. HTTPS funziona come un layer efficace contro le persistenti minacce di criminalità informatica, sebbene non sia l’unica implementazione di sicurezza utilizzata per scongiurare sofisticati attacchi informatici che violano reti aziendali di alto valore.

HTTP/2 HTTPS
HTTP/2 HTTPS

Il supporto di HTTP/2 dei browser include la crittografia HTTPS e completa di fatto le prestazioni generali di sicurezza delle implementazioni HTTPS. Caratteristiche come il minor numero di handshake TLS, il basso consumo di risorse sia sul lato client che sul lato server e le migliori capacità di riutilizzo delle sessioni web esistenti, eliminando al contempo le vulnerabilità associate a HTTP1.x, presentano HTTP/2 come fattore chiave per la sicurezza delle comunicazioni digitali in ambienti di rete sensibili.

Crittografia HTTP/2
Crittografia HTTP/2

HTTPS non si limita alle organizzazioni di alto profilo e la sicurezza informatica è altrettanto preziosa per i proprietari di attività online, i blogger occasionali, i commercianti di ecommerce e persino gli utenti dei social media. HTTP/2 richiede intrinsecamente la versione TLS più recente e sicura e tutte le comunità online, i proprietari di attività commerciali e i webmaster devono essere sicuri che i loro siti web utilizzino HTTPS di default.

Le procedure più frequenti per impostare HTTPS comprendono l’utilizzo di piani di hosting, l’acquisto, l’attivazione e l’installazione di un certificato di sicurezza e infine l’aggiornamento del sito in modo tale che utilizzi HTTPS.

I Principali Vantaggi di HTTP/2

L’industria di Internet ha dovuto sostituire il vecchio HTTP1.x con un’alternativa che prometteva vantaggi per l’utente medio. La transizione da HTTP1.x a HTTP/2 si basa quasi interamente sulla massimizzazione del potenziale dei progressi tecnologici per soddisfare tali aspettative: dal punto di vista delle aziende online e dei consumatori di Internet, il web sta diventando sempre più lento man mano che si popola di volumi crescenti di contenuti multimediali irrilevanti. Per le aziende online, al fine di raggiungere efficacemente il mercato di destinazione, e per gli utenti di Internet, per accedere più velocemente a contenuti web migliori, vengono sviluppate modifiche HTTP/2 per migliorare l’efficienza nella comunicazione client-server dei dati. E, soprattutto, il web è più situazionale che mai.

Velocità Internet
Velocità Internet

La velocità di Internet non è la stessa in tutte le reti e in tutte le località geografiche. La base di utenti sempre più mobile richiede internet ad alte prestazioni senza soluzione di continuità, in ogni tipo di dispositivi, anche se le congestionate reti cellulari non possono competere con internet a banda larga ad alta velocità. Un meccanismo di networking e di comunicazione dati completamente rinnovato e revisionato come HTTP/2 si è rivelato una soluzione praticabile con i grandi vantaggi descritti di seguito.

Prestazioni Web

Il termine riassume tutti i vantaggi delle modifiche di HTTP/2. I risultati dei benchmark HTTP/2 (vedi capitolo: Confronto tra i Benchmark delle Performance di HTTPS, SPDY e HTTP/2) dimostrano miglioramenti nelle prestazioni di HTTP/2 rispetto sia ai predecessori che alle alternative.

Miglioramenti delle prestazioni HTTP/2
Miglioramenti delle prestazioni HTTP/2

La capacità del protocollo di inviare e ricevere più dati per ogni ciclo di comunicazione client-server non è un hack di ottimizzazione ma un reale, realizzabile e pratico vantaggio di HTTP/2 in termini di prestazioni. L’analogia è simile all’idea dei treni in tunnel sottovuoto (Vactrain) rispetto alle ferrovie standard: eliminare la resistenza dell’aria dai tunnel Vactrain permette al veicolo di viaggiare più velocemente e trasportare più passeggeri con un migliore utilizzo dei canali disponibili senza doverli dotare di motori più grandi, riducendo il peso e rendendo il veicolo più aerodinamico.

Tecnologie come il Multiplexing creano uno spazio aggiuntivo per trasportare e trasmettere più dati contemporaneamente – come i compartimenti di posti a più piani nell’aeroplano Airbus.

E cosa succede quando il meccanismo di comunicazione dei dati elimina tutti gli ostacoli per migliorare le prestazioni web? Il sottoprodotto delle prestazioni superiori del sito web comprende maggiore soddisfazione del cliente, migliore ottimizzazione dei motori di ricerca, alta produttività e utilizzo delle risorse, espansione della base di utenti, migliori figure di vendita e molto altro.

Fortunatamente, l’adozione di HTTP/2 è molto più pratica della creazione di camere sotto vuoto per grandi locomotive a più piani.

Prestazioni Web Mobile

Milioni di utenti di internet accedono al web dai loro dispositivi mobili come gateway primario verso il mondo cibernetico. L’era del Post PC ha spinto l’adozione di smartphone nell’accesso a servizi basati sul web dal palmo della mano, e di eseguire la maggior parte delle attività di calcolo quotidiane mentre si è in movimento, invece che seduti davanti al proprio desktop per lunghi periodi di tempo.

HTTP/2 è stato progettato nel contesto delle attuali tendenze di utilizzo del web. Funzionalità come il multiplexing e la compressione dell’intestazione funzionano bene per ridurre la latenza di accesso ai servizi Internet su reti dati mobili, che offrono una larghezza di banda per utente limitata. HTTP/2 ottimizza l’esperienza web per gli utenti mobili con alte prestazioni e sicurezza precedentemente attribuite solo all’utilizzo di Internet dal desktop. I vantaggi di HTTP/2 per gli utenti mobili promettono un impatto positivo immediato nel modo in cui le aziende online si rivolgono ai clienti del mondo cibernetico.

HTTP/2 mobile
HTTP/2 mobile

Internet Più Economico

Il costo di internet è crollato rapidamente dagli albori del World Wide Web. L’espansione dell’accesso al web e l’aumento della velocità di internet è sempre stato l’obiettivo da raggiungere con i progressi delle tecnologie internet. Nel frattempo, l’abbassamento dei costi sembra aver creato delle strozzature, soprattutto se si considerano le accuse di monopolio mosse nei confronti dei fornitori di servizi di telecomunicazione.

Calo dei prezzi su Internet
Calo dei prezzi su Internet

L’HTTP/2, che promette di aumentare il throughput e di migliorare l’efficienza della comunicazione dati, consentirà ai fornitori di servizi di telecomunicazione di ridurre i costi operativi mantenendo al contempo gli standard della Internet ad alta velocità. L’OpEx ridotto incoraggerà i fornitori di servizi a ridurre i prezzi per il mercato di fascia bassa e ad introdurre livelli di servizio ad alta velocità con il modello di tariffazione esistente.

Raggio d’Azione Esteso

I mercati asiatici e africani, densamente popolati, continuano ad avere un accesso limitato ad una Internet a prezzi accessibili. I fornitori di servizi Internet concentrano i loro investimenti per ottenere il massimo rendimento dai servizi offerti solo per le località urbane e sviluppate. I vantaggi dell’HTTP/2 che portano all’adozione su larga scala del protocollo applicativo avanzato ridurranno naturalmente la congestione della rete per risparmiare risorse e larghezza di banda a favore delle località geografiche lontane e poco servite.

Mappa della larghezza di banda
Mappa della larghezza di banda

Esperienza Ricca di Contenuti Media

L’esperienza web moderna consiste nel fornire contenuti ricchi di media ad altissime velocità di caricamento delle pagine. È evidente che gli utenti di Internet richiedono regolarmente contenuti e servizi ricchi di media. Il costo dell’infrastruttura di base, anche se fornita via cloud come soluzione su abbonamento, non è sempre accessibile per le start-up di Internet. I vantaggi di HTTP/2 e le caratteristiche tecnologiche come l’Header Compression potrebbero non ridurre le dimensioni effettive dei file, ma tagliare un po’ di byte in eccesso per trasmettere contenuti ricchi di risorse multimediali tra client e server.

Esperienza Mobile Migliorata

Le aziende online in crescita progressiva seguono una strategia Mobile-First per colpire efficacemente la base di utenti mobili in crescita esplosiva. Le limitazioni hardware dei dispositivi mobili sono forse il maggiore limite all’esperienza web mobile, che risente del tempo necessario per elaborare le richieste dei browser. L’HTTP/2 riduce i tempi di carico e la latenza della rete mobile a livelli gestibili.

Prima il cellulare
Prima il cellulare

Miglioramento dell’utilizzo della tecnologia

Il consumo di risorse è aumentato in modo significativo per l’elaborazione delle richieste dei browser da parte di client e server per fornire contenuti di social media e progetti web complessi. Anche se gli sviluppatori web hanno lavorato su appropriati hack di ottimizzazione, una soluzione robusta e affidabile nella forma di HTTP/2 era inevitabile. Caratteristiche come la compressione Header Compression, Server Push, Stream Dependencies e Multiplexing contribuiscono tutte a migliorare l’utilizzo della rete e costituiscono un vantaggio chiave di HTTP/2.

Sicurezza

I vantaggi di HTTP/2 vanno oltre le prestazioni, in quanto l’algoritmo HPACK consente ad HTTP/2 di aggirare le minacce alla sicurezza che colpiscono i protocolli a livello di applicazione basati su testo. HTTP/2 contiene comandi in binario e consente di comprimere i metadati dell’intestazione HTTP seguendo un approccio “Security by Obscurity” per proteggere i dati sensibili trasmessi tra client e server. Il protocollo vanta anche un supporto completo per la crittografia e richiede una versione migliorata di Transport Layer Security (TLS1.2) per una migliore protezione dei dati.

Sicurezza HTTP/2
Sicurezza HTTP/2

Innovazione

HTTP/2 incarna l’innovazione e il concetto di web ad alte prestazioni. HTTP/2 è alla base del mondo cibernetico come lo conosciamo oggi, e le modifiche di HTTP/2 sono basate principalmente sul protocollo SPDY di Google, che ha fatto passi da gigante rispetto alle vecchie versioni HTTP1.x e, nel prossimo futuro, sostituirà quasi completamente SPDY così come tutte le precedenti iterazioni HTTP. La liberazione da complessi hack di ottimizzazione presenta il supporto di HTTP/2 da parte dei browser come una soluzione praticabile per gli sviluppatori web al fine di produrre siti web e servizi online ad alte prestazioni.

Vantaggi SEO di HTTP/2

La disciplina del marketing SEO si colloca a metà strada tra arte e scienza. Le tradizionali pratiche di SEO “black hat” non riescono a manipolare le classifiche dei motori di ricerca seguendo gli algoritmi proprietari sempre più complessi utilizzati dai motori di ricerca più diffusi. Le aziende online devono far evolvere di conseguenza le loro tattiche di marketing. Investimenti più intelligenti come l’implementazione di siti web ben progettati, e non solo ottimizzati per la velocità, ma costruiti da zero per prestazioni, sicurezza ed esperienza utente superiori. Questi attributi sono da preferire in quanto mezzi per restituire query di ricerca con le informazioni e i servizi più accurati, accessibili in modo conveniente ad un target di pubblico globale.

Le procedure industriali standardizzate per l’ottimizzazione dei motori di ricerca vanno oltre le tattiche di marketing di front-end e comprendono l’intero ciclo di vita della comunicazione client-server. I SEO che un tempo erano il punto di riferimento nei team del mercato di internet non godono più delle stesse posizioni dall’avvento delle più recenti tecnologie di comunicazione digitale. Tra queste, la prevalenza di HTTP/2 segna un slittamento tettonico determinante che costringe gli sviluppatori web e gli addetti al marketing a tornare al tavolo di progettazione.

Vantaggi HTTP/2 SEO
Vantaggi HTTP/2 SEO

L’implementazione e l’ottimizzazione dell’infrastruttura per HTTP/2 e i promettenti vantaggi nelle prestazioni sono ora un fattore critico per l’ottimizzazione dei motori di ricerca. Le aziende online che mancano di un’adeguata base di utenti organici non possono permettersi di trascurare HTTP/2 e la conseguente spinta alla SEO quando sono in competizione sul terreno dell’innovazione e dei servizi online ad alto valore con imperi del business online in continua crescita, che si posizionano ancora più in alto con l’implementazione di HTTP/2 sul lato server.

Confronto tra i Benchmark delle Performance di HTTPS, SPDY e HTTP/2

I seguenti confronti tra HTTPS, SPDY e HTTP/2 mostrano un quadro chiaro dei miglioramenti delle prestazioni web con l’ultimo application protocol.

Confronto tra i grafici delle prestazioni HTTP/2
Confronto tra i grafici delle prestazioni HTTP/2

I risultati del benchmark di HTTP/2 confermano l’idea che la compressione degli header, il server push e gli altri meccanismi utilizzati specificamente per migliorare la velocità delle pagine e l’esperienza utente funzionano in modo consistente nel mondo reale:

Dettagli del test: Questo test di confronto tra HTTPS, SPDY3.1 e HTTP/2 presenta i seguenti risultati:

  • Dimensione delle intestazioni delle richieste del client e delle risposte del server: i benchmark HTTP/2 dimostrano come l’utilizzo del meccanismo di compressione dell’header ne riduce significativamente le dimensioni, mentre SPDY riduce solo l’header utilizzato nella risposta del server per questa particolare richiesta. HTTPS non riduce le dimensioni dell’header sia in entrambi i comandi di richiesta e di risposta.
  • Dimensione del messaggio di risposta del server: anche se la risposta HTTP/2 del server sia di dimensioni maggiori, come compromesso fornisce una crittografia più forte per una maggiore sicurezza.
  • Numero di connessioni TCP utilizzate: HTTP/2 e SPDY utilizzano meno risorse di rete elaborando simultaneamente richieste multiple (multiplexing) e quindi riducono la latenza.
  • Velocità di caricamento della pagina: HTTP è stato costantemente più veloce di SPDY. HTTPS è stato significativamente più lento a causa della mancanza di capacità di compressione dell’header e di server push.

Preparativi per un Internet Migliore: Supporto e Disponibilità di HTTP/2 da Parte dei browser

HTTP/2 è già disponibile con web server, browser e supporto mobile adeguati. Le tecnologie che utilizzano HTTP1.x non sono compromesse con l’implementazione di HTTP/2 per il vostro sito web, ma richiedono un rapido aggiornamento per supportare il nuovo protocollo. È possibile considerare i protocolli di rete come lingue parlate. Comunicare con nuove lingue è possibile solo se adeguatamente comprese. Allo stesso modo, il client e il server devono essere aggiornati per supportare la comunicazione dei dati utilizzando il protocollo HTTP/2.

Supporto Clienti

Gli utenti Internet non devono preoccuparsi di configurare il proprio browser desktop e mobile per supportare HTTP/2. Google Chrome e Firefox supportano questa tecnologia da anni e Apple ha aggiunto il supporto HTTP/2 al browser Safari già nel 2014. Internet Explorer richiede agli utenti di utilizzare Windows 8 per avere il supporto dell’ultimo application protocol.

Supporto browser HTTP/2
Supporto browser HTTP/2

I principali browser mobili, tra cui il browser di Android, giustamente chiamato Browser, Chrome per Android e iOS, così come Safari su iOS 8 e superiore, supportano HTTP/2 per l’accesso web da mobile. Agli utenti Internet è consigliato di installare le ultime versioni stabili dei browser per mobile e desktop per avere i massimi vantaggi in termini di prestazioni e sicurezza del protocollo applicativo, come si vede nei benchmark di HTTP/2.

Supporto Web Server: Apache e Nginx

I fornitori di servizi online che hanno in esecuzione server in locale o nel cloud dovranno aggiornare e configurare i server per aggiungere il supporto per HTTP/2. Naturalmente, da Kinsta abbiamo già modificato i nostri server di conseguenza! Considerando l’analogia alla lingua parlata di cui sopra, i visitatori Internet che accedono alle informazioni fornite da questi server possono utilizzare HTTP/2 solo se il server è aggiornato e configurato a tale scopo.

I server Nginx che costituiscono il 66% di tutti i server web attivi vantano il supporto nativo per HTTP/2, mentre i server Apache utilizzano il mod_spdy module per offrire il supporto dei browser ad HTTP/2. Il modulo è stato sviluppato da Google per supportare le funzionalità di SPDY come il multiplexing e la compressione degli header per i server Apache 2.2 e il software è stato donato alla Apache Software Foundation.

Supporto HTTP/2 Nginx e Apache
Supporto HTTP/2 Nginx e Apache

Come Iniziare a Utilizzare HTTP/2

Seguite questi semplici passaggi per impostare HTTP/2 per il vostro sito web.

Passo 1

  • Assicuratevi che HTTPS sia abilitato: acquista un certificato SSL o TLS da un’autorità emittente affidabile, o utilizzate un certificato SSL gratuito di Let’s Encrypt, se disponibile.
  • Attivate il certificato di sicurezza.
  • Installate il certificato.
  • Aggiornate il sito web per abilitare il protocollo HTTPS.

Per i Clienti di Kinsta

Se siete clienti di Kinsta l’installazione di un certificato SSL può essere effettuata con un solo click.

Aggiungere un certificato Let's Encrypt
Aggiungere un certificato Let’s Encrypt

Passo 2

Assicuratevi che l’infrastruttura di rete sottostante, compreso il software server, supporti HTTP/2. I server Nginx supportano HTTP/2 nativamente, mentre Apache ha aggiunto il supporto nativo nell’ottobre del 2015 (versione 2.4), il che significa che i server Apache potrebbero richiedere moduli aggiuntivi per abilitare la comunicazione dati utilizzando il supporto dei browser per HTTP/2.

Nota: HTTP/2 è abilitato di default su Kinsta per tutti i siti che girano su HTTPS.

Passo 3

Aggiornate, configurate e testate i server per supportare HTTP/2. Questa risorsa descrive la procedura di configurazione e test dei server Apache. Contattate il vostro provider di hosting web per assicurarvi che HTTP/2 sia pronto per il vostro sito web.

Passo 4

Usate questo tool per verificare se avete configurato correttamente HTTP/2.

Conclusioni

Il dominio e la supremazia di HTTP/2 nel mondo cibernetico è inevitabile. Il protocollo applicativo sembra destinato a portare con sé l’eredità di HTTP1.x che ha trasformato il mondo cibernetico con capacità di trasmissione dati rivoluzionarie. HTTP/2 succede ai suoi predecessori con una superiorità tecnologica di gran lunga maggiore rispetto al divario di innovazione che aveva HTTP1.x rispetto ai tradizionali meccanismi di comunicazione dati di allora.

Tuttavia, l’abilitazione di HTTP/2 è solo uno dei passi nel lungo viaggio verso il miglioramento della page speed. Questa anteprima di Kinsta intitolata “Guida Introduttiva all’Ottimizzazione delle Prestazioni dei Siti Web” spiega come sviluppare per la velocità, affrontare le strozzature nelle prestazioni e quali sono i vantaggi strategici di business associati a prestazioni web superiori.