HTTP / 2 è un nuovo modo di rendere il tuo sito web carico molto più veloce eliminando molte inefficienze associate alla versione corrente di HTTP. La cosa più bella a riguardo? Non devi fare molti sforzi per farlo funzionare.

O tu?

Cos'è HTTP / 2?

Quando HTTP1 e HTTP1.1 sono stati originariamente sviluppati, il web era molto diverso da quello che è oggi. I siti web avevano meno risorse (file JavaScript, file CSS, immagini) rispetto a oggi. Le connessioni a Internet non erano molto veloci e gli utenti non erano molto esigenti con la velocità di caricamento del sito web.

Gli utenti iniziano a ricevere prurito quando un sito richiede più di 3 secondi per mostrare una risposta.

Eri felice che un sito web fosse caricato a pieno ritmo. Potresti esserti lamentato segretamente che il caricamento era lento. Ma non potresti davvero farci molto. Questo perché il tempo di caricamento lento proveniva in genere da fattori che erano indipendenti dal server Web e dalla tecnologia che stavi utilizzando. Principalmente era la connessione internet effettiva che era il principale fattore limitante.

Avanti veloce ad oggi. I tempi di caricamento dei siti Web sono misurati in millisecondi piuttosto che secondi. Gli utenti iniziano a ricevere prurito quando un sito richiede più di 3 secondi per mostrare una risposta. In questo tipo di situazione, le inefficienze contate in millisecondi associati alle versioni originali di HTTP iniziano a fare la vera differenza. Ecco perché si discutono così tanti articoli come rendere il tuo sito più veloce . Perché i millisecondi contano.

La nuova versione di HTTP, conosciuta come HTTP / 2 affronta specifici problemi noti di HTTP. I suoi obiettivi sono quelli di affrontare una serie di problemi che sono diventati più pronunciati mentre il web si è evoluto in siti web sempre più grandi con molti più file CSS, JS e di immagini di quanto originariamente previsto.

Ma cosa c'è di sbagliato in HTTP1.x, e perché spendiamo così tanto impegno rendendolo più veloce?

I problemi di HTTP1.x

HTTP1.x ha un numero di problemi inerenti. In realtà, evitiamo di chiamarli problemi. HTTP1.x ha un numero di modi in cui può essere più efficiente.

  1. HTTP 1.x è basato sul testo: inizialmente l'idea era che HTTP1.x fosse leggibile dal punto di vista umano, quindi era completamente basato sul testo. Per definizione tutti i protocolli testuali hanno inefficienze associate ad essi come spazi bianchi, interruzioni di link, lettere maiuscole, ecc.
  2. Solo un file è in trasferimento in qualsiasi momento: questo è uno dei maggiori problemi con le versioni 1.x di HTTP. Immagina di essere un fattorino che è in grado di consegnare un solo pacchetto alla volta. Devono tornare alla base ogni volta che devono consegnare il pacchetto successivo.
  3. Per i siti Web di oggi sono necessarie centinaia di richieste: disporre di temi più sofisticati significa aumentare la dimensione dei siti Web e il numero di risorse. E così fa il tempo necessario per caricare ogni risorsa. Ricorda che il nostro "fattorino" deve tornare alla base ogni volta, non è in grado di trasferire più di un file alla volta.
  4. Ogni connessione è un'operazione tecnica pesante: poiché sono necessarie centinaia di connessioni, inizia ad accumulare un sovraccarico serio. Con il tempo di caricamento misurato in millisecondi, il tempo combinato necessario per creare una connessione per centinaia di risorse inizia a diventare molto significativo.

Molte volte i web designer hanno dovuto attuare misure specifiche per ridurre queste inefficienze. Soluzioni alternative come CSS sprites, minification e la combinazione di file hanno lo scopo di risolvere i problemi con il caricamento di siti Web.

Questi sono - in sostanza - soluzioni alternative anziché correzioni.

Come HTTP / 2 risolve i problemi di HTTP1.x

HTTP / 2 è progettato e sviluppato da SPDY , un protocollo progettato a Google mirato a rendere il web 2x più veloce. Affronta i problemi HTTP nel modo seguente

  1. HTTP / 2 è destinato al consumo da parte delle macchine (il browser Web e il server Web del tuo sito Web) piuttosto che dagli utenti. È binario piuttosto che basato sul testo rendendolo intrinsecamente più efficiente. Il trasferimento e l'analisi dei dati sono più veloci utilizzando i protocolli binari.
  2. Più file possono essere trasferiti contemporaneamente sulla stessa connessione . Le correzioni sono state implementate in modo tale che è possibile pipeline risorse sulla stessa connessione. Piuttosto che dover aprire una nuova connessione ogni volta (il nostro fattorino torna alla base), tutte le risorse possono essere trasportate sulla stessa connessione (il nostro fattorino scarica tutto in un furgone e prende tutto in un unico viaggio).
  3. Server push per inviare file che saranno richiesti dal browser. In HTTP1.x è il browser Web che richiede al server Web le risorse necessarie. HTTP Server Push (implementato come parte di HTTP / 2) consente al server di iniziare a inviare risorse di cui conosce il browser web. Ad esempio, puoi istruire il server a non attendere che il browser richieda i file CSS, JS e altre risorse di cui il browser avrà comunque bisogno.
  4. Intestazione pacchetto HTTP e altre ottimizzazioni : si tratta di miglioramenti tecnici progettati per migliorare l'efficienza effettiva dei trasferimenti

Cosa è necessario per abilitare HTTP2?

Non supportando HTTP / 2 su connessioni non crittografate, i proprietari dei siti Web sono fortemente potenziati nell'implementazione di HTTP per il loro sito web.

All'inizio dell'articolo abbiamo detto che non è necessario molto sforzo da parte tua per abilitare HTTP / 2. Abilitare HTTP / 2 è qualcosa che deve essere fatto a livello di web server. La maggior parte dei server Web come Apache, Nginx, IIS e altri server Web principali hanno già il supporto per HTTP / 2.

Se si esegue il proprio server Web, è sufficiente installare e abilitare le librerie HTTP / 2. Se il tuo sito web è ospitato presso una società di hosting, verifica con la società se il server Web è già abilitato per HTTP / 2.

La presa? Certificati sicuri

Forse le cose erano troppo belle per essere vere. Abbiamo appena discusso di come i server Web supportano già completamente HTTP / 2.

Anche la maggior parte dei browser Web supporta completamente HTTP / 2. Tuttavia, hanno anche scelto di supportare solo HTTP / 2 in modalità crittografata. La ragione di questo è che c'è stato un forte movimento per abilitare HTTPS (crittografia) su tutto il web. Tali iniziative come HTTPS ovunque spingere fortemente la necessità di HTTPS su tutti i siti web.

Non supportando HTTP / 2 su connessioni non crittografate, i proprietari dei siti Web sono fortemente potenziati nell'implementazione di HTTP per il loro sito web.

Ovviamente non è necessariamente una brutta cosa. L'implementazione di HTTPS offre notevoli vantaggi in termini di sicurezza e privacy. Con le aziende che si uniscono per formare un'Autorità di certificazione chiamata Let's Encrypt per consentire certificati sicuri gratuiti, il costo complessivo per acquisire effettivamente un certificato e implementare HTTPS diventa molto più economico. Questo era relativamente costoso fino a qualche tempo fa.

L'implementazione di HTTPS non è qualcosa che dovresti fare senza dargli il necessario pensiero. Probabilmente potresti voler discutere di questo con il tuo sviluppatore di siti web di fiducia o con qualcuno con sufficiente esperienza tecnica. La maggior parte delle volte, la tua società di hosting dovrebbe essere in grado di guidarti attraverso questo.

Naturalmente, si consiglia vivamente di implementare HTTPS. Oltre alla sicurezza aggiuntiva, avrai la possibilità di abilitare HTTP / 2 e rendere più veloce il tuo sito web. Questo è ciò che chiamiamo una situazione win-win.

Sono ancora necessarie altre tecniche di ottimizzazione?

Sì e no.

Alcune ottimizzazioni volte a ridurre le richieste web diventano superflue. Se il tuo sito ha dei tempi di calcolo per "combinare" JS, CSS e altri file, questo è in realtà diventato un costo generale. Ogni volta che "sprecato" risolve le suddette inefficienze non è più necessario.

D'altro canto, tali ottimizzazioni come il caching, la riduzione delle dimensioni delle risorse, la distribuzione di contenuti su un CDN, la scelta di un server di hosting di qualità elevata e altre ottimizzazioni che affrontano diversi tipi di inefficienze dovrebbero rimanere in vigore.

Il bello di HTTP / 2 è che non solo fa caricare il tuo sito più velocemente, ma ti spinge anche a rendere più sicuro il tuo sito web. Non c'è discussione sul fatto che ci siano vantaggi per entrambi. HTTP / 2 è il prossimo passo per rendere più veloce tutto il web. Facciamolo parte di esso e fallo accadere.