Avanti tutta http/3...

e velocizza i nostri siti

Iniziamo dal principio e vediamo cosa cambierà rispetto al protocollo in uso oggi. Il protocollo nasce come molte delle migliori idee dal CERN con la'iuto di una persona non molto nominata (😂) all'anagrafe Tim Berners-Lee, prima del protocollo http veniva usato il protocollo FTP per lo scambio di informazioni. Correva l'anno 1991 e fu la HTTP/1.0 la prima versione effettivamente disponibile del protocollo, tra le feutures più importanti sicuramente i metodi get, post, head. Nel 1999 con un aggiornamento uscì l’HTTP/1.1 vediamo le principal problematiche di questa versione, cioè la gestione a pacchetti singoli, i dati non venivano scaricati in modo simultaneo ma un pacchetto per volta, questo problema noto anche come Head of Line Blocking (HOLB), come vedremo più avanti con l'http2 inizia a risolversi questo problema e con http3 vediamo migliora ulteriormente e garantire prestazioni ancor più veloci per i nostri siti web.

In tempi più recenti anno 2014, il Working Group ha presentato HTTP/2 e nell'anno 2015 inizia ad esser presente su molti server e sfruttare a pieno questa nuova tecnologia. Tra le principali novità vediamo introdotto un livello di framing e multiplexing binario per migliorare la latenza e consentire la gestione di più richieste simultaneamente in modo che non si crei una coda e file come il javascript o numerosi file css non siano di intralcio al caricamento redendo lento una pagina web e peggiorando la user experience. HTTP/2 ha certamente apportato delle migliorie significative con i download non bloccanti, le pipeline e il server push. In questo modo è stato possibile superare alcune limitazioni del protocollo TCP e così ridurre significativamente il numero dei cicli richiesta-risposta e di handshake. Di contro hanno obbligato l'uso dei certificati SSL per sfruttare a pieno questo nuovo protocollo e se in casi di un e-commerce o siti dove avvengono transazioni o inserimento di dati personali sia obligatorio, ha comportato un sovraccarico di calcolo che ha reso i miglioramenti nella velocità non percepibili.

Http/3 nuovi obiettivi prefissati da QUIC

il miglioramento che avanza a suon di kb/s

Partiamo dicendo che ad oggi sono pochi i server che usano questo nuovo protocollo e lo sponsorizzano, ci vorrà ancora un pò per vederlo in azione soprattutto sugli hosting low cost.

L'obiettivo principale di questo nuovo protocollo:

  • È quello di migliorare la gestione delle connessioni per risolvere eventuali blocchi e aumentare la velocità, dando un ochiata più all'interno si traduce in limitare, prevenire e rendere più efficienti l’invio dei pacchetti di dati, con attenzione ai parametri legati alla velocità di risposta.

  • Migliorare il Round Trip Time cioè il tempo che intercorre tra l’invio di un segnale più il tempo necessario per la ricezione della conferma, se si ha una connessione internet ottimale, la latenza tra client e un server remoto fisicamente vicino è compresa tra 10-50 ms: ogni pacchetto trasmesso impiegherà questo tempo per essere ricevuto. La situazione cambia se il server contattato si trova in un altro continente ed è quindi fisicamente lontano oppure se la navigazione avviene tramite un operatore telefonico mobile mediante connessioni più lente. Il risultato è una penalità sulla latenza superiore o uguale ai 100 ms. Tutto questo “per colpa” della distanza da percorrere. Senza contare che le reti mobili devono subire un ulteriore ritardo tra i 100-150 ms (50 ms su connessioni 4G/LTE) tra telefono e server per colpa delle frequenze radio e delle reti intermedie.

Google cerca di migliorare il più possibile per garantire all’utente una User Experience di qualità e per non far scappare i visitatori verso altri siti (è stato visto a seguito di diversi studi che il tempo ottimale per un caricamento di un sito web è tra i 2-5s).

Con QUIC le cose cambiano il protocollo è progettato in modo che, se un client ha già dialogato con un server, può cominciare a inviare dati senza tempi di attesa. Questo si traduce in una risposta client-server-client decisamente più immediata.

Il miglioramento apportato da QUIC ricorda quello TCP+TLS+HTTP/2, ma implementato sul protocollo di rete UPD. Ad ogni modo TPC è parte integrante nel kernel del sistema operativo e quindi fare delle modifiche significative è decisamente complicato. Occorrerebbe lavorare su rilasci che hanno un impatto a livello di sistema e di solito sono distribuiti lentamente sui server. L'utilizzo di QUIC, diminuisce le limitazioni rendendo superfluo l’aggiornamento dei kernel dei sistemi perché trasferisce il proprio funzionamento nello spazio utente. Basandosi su UPD, garantisce prestazioni ottimali per gli utenti connessi a reti lente o con latenza elevata, dato che gestisce le richieste in maniera differente a confronto con i protocolli usati in precedenza.

Per concludere C’è chi pensa che, non essendo ancora stato adottato lo standard HTTP/2, potrebbe essere troppo presto per spingere per HTTP/3. È un’obiezione valida, ma questo protocollo ha già avuto test e implementazioni su larga scala. Google ha iniziato a testarlo già nel 2015, così come Facebook nel 2017.