Quando navighiamo sul Web utilizziamo il protocollo HTTP (HyperText Transfer Protocol) e, nella maggior parte dei casi, la versione HTTPS che aggiunge anche la cifratura dei dati scambiati in entrambe le direzioni. HTTP/3 è l’ultima e più aggiornata versione del protocollo HTTP, standardizzata nel 2022. Introduce significative innovazioni rispetto ai predecessori, HTTP/1.1 e HTTP/2, snellendo significativamente i tempi di caricamento delle pagine. Almeno sulla carta, perché un team di studiosi ha verificato che non sempre è così.
Non tutti i server Web supportano HTTP/3 o lo hanno abilitato: affinché lo scambio di dati avvenga utilizzando questa versione del protocollo è necessario che sia client che server siano compatibili.
Cos’è HTTP/3 e come funziona
La principale novità di HTTP/3 è l’utilizzo di QUIC (Quick UDP Internet Connections), un protocollo sviluppato da Google che combina l’efficienza di UDP (ne parliamo nell’articolo dedicato allo stack di rete TCP/IP) con le funzionalità di sicurezza e gestione delle connessioni tipiche di TCP.
A differenza di HTTP/1.1 e HTTP/2, che utilizzano TCP come protocollo di trasporto, HTTP/3 utilizza UDP. Questo consente di evitare alcuni degli svantaggi di TCP e grazie al controllo della congestione costruito attraverso QUIC, è possibile scongiurare perdite di pacchetti e disporre il ripristino delle connessioni in modo più efficiente.
Quando un client (ad esempio, un browser) deve comunicare con un server, in HTTP/3 la connessione può essere stabilita rapidamente. QUIC permette un handshake pressoché istantaneo riducendo notevolmente la latenza. Una volta stabilita la connessione, HTTP/3 può mantenere la comunicazione attiva anche se ci sono cambiamenti nella rete, come il passaggio da WiFi a rete mobile e viceversa.
HTTP/3 supporta inoltre il multiplexing dei flussi di dati in maniera tale che i dati siano sempre inviati simultaneamente, senza che un flusso in ritardo influenzi gli altri.
Il protocollo supporta inoltre, ovviamente, il controllo e recupero degli errori, un sistema di controllo della congestione più avanzato rispetto a TCP proprio di QUIC e la crittografia TLS (Transport Layer Security).
HTTP/3 più lento del predecessore: è mai possibile?
Uno studio approfondito presentato alla ACM Web Conference 2024, tuttavia, solleva importanti interrogativi sull’efficacia di HTTP/3 nelle reti ad alta velocità.
L’analisi, condotta su reti con una larghezza di banda di 1 Gbps e un solo dispositivo di relay tra client e server, ha messo in evidenza che, al contrario di quanto atteso, HTTP/2 offre prestazioni migliori rispetto a HTTP/3.
I ricercatori raccontano che, nel corso del loro esperimento, HTTP/2 ha registrato una velocità superiore indipendentemente dalla dimensione dei file, con un utilizzo di CPU significativamente inferiore. Fino a 600 Mbps non sono state osservate differenze significative tra HTTP/2 e HTTP/3, ma oltre questa soglia la velocità di comunicazione di QUIC (HTTP/3) ha iniziato a diminuire.
Test condotti con Chrome e altri browser hanno confermato che HTTP/2 mantiene performance ed efficienza migliori rispetto a HTTP/3 quando la larghezza di banda cresce. Anche durante la trasmissione di un video 4K su Ethernet, 5G e 4G, HTTP/2 ha mantenuto un bitrate superiore in condizioni di connessione stabili e veloci.
Le cause dei “rallentamenti” di HTTP/3
Con buona pace degli ingegneri Google che hanno introdotto QUIC e dell’IETF (Internet Engineering Task Force), organizzazione internazionale che sviluppa e promuove standard aperti per la rete Internet, che ha ratificato e standardizzato HTTP/3, secondo Xumiao Zhang e i suoi collaboratori non si tratta di una soluzione in grado di “battere” sempre HTTP/2.
La causa principale dei “rallentamenti” di HTTP/3 in contesti ad alta velocità è attribuita a un carico di elaborazione eccessivo lato ricevente, dovuto principalmente alla gestione dei pacchetti di dati e agli ACK (acknowledgments) del protocollo QUIC nello spazio utente. Questo overhead diventa evidente in tutte quelle situazioni in cui si trasmettono file di grandi dimensioni oppure quando la connessione è stabile e ad alta capacità.
Nonostante HTTP/3 offra notevoli vantaggi in termini di latenza ridotta e stabilità, la ricerca appena presentata mette in evidenza come appaia meno efficiente rispetto a HTTP/2, nelle reti ad alta velocità o su reti con pochi trasferimenti ma di grandi dimensioni.
La sfida per il futuro sarà dunque ottimizzare QUIC per migliorare le prestazioni anche in questi scenari, mantenendo il basso overhead computazionale e i vantaggi intrinseci della tecnologia.
Credit immagine in apertura: iStock.com – RobertAx