Per capire cosa offra l’HTTP/3 è innanzitutto necessario comprendere la funzione di QUIC, UDP e HTTP/2. In sostanza, l’HTTP/3 nasce dalla combinazione di questi tre elementi. Già il nome HTTP-over-QUIC suggerisce che la trasmissione dei dati avviene tramite UDP piuttosto che TCP.
L’HTTP/2 utilizza il TCP, il protocollo di trasmissione più diffuso nel web. Il TCP stabilisce le connessioni tramite handshake su più livelli e trasmette i pacchetti di dati in ordine cronologico, quindi li invia uno alla volta e procede nella trasmissione solo quando quella del pacchetto prima è stata conclusa. La trasmissione è protetta da cosiddetti ACK, ovvero conferme di richiesta e consegna e numeri di verifica. I dati trasmessi tramite il TCP contengono un’intestazione con parametri che consentono ai processi del mittente di connettersi ai processi corrispondenti del destinatario.
Il TCP è molto affidabile per quanto riguarda la completezza delle trasmissioni dei dati, ma è soggetto a code di dati e tempi di caricamento più lunghi dal momento che vengono interrotte tutte le trasmissioni finché un pacchetto di dati smarrito non viene trasferito con successo. L’HTTP/2 costituisce in un certo senso il limite della famiglia di protocolli, dal momento che non è possibile velocizzare la trasmissione di dati senza introdurre un protocollo nuovo.
Google si è attivato immediatamente sviluppando il proprio protocollo di trasmissione QUIC. QUIC aggira il problema delle code di dati tipiche di TCP sfruttando la trasmissione UDP connectionless basata su datagrammi. UDP lavora, proprio come TCP, sul livello di trasporto rinunciando, tuttavia, alle conferme di destinatario e mittente. Questo significa che altre trasmissioni non devono aspettare che venga conclusa quella precedente. La comunicazione tra client e server viene quindi notevolmente accelerata. L’IETF ha riconosciuto i vantaggi del nuovo protocollo e lo ha introdotto nel 2018 come versione successiva di HTTP/2 con il nome HTTP-over-QUIC.
Il protocollo di trasmissione HTTP rimane principalmente invariato. Esso è ancora costituito da un’intestazione e da un corpo (body) e utilizza verbi, cookie e caching. La differenza sta nel modo di trasmissione e nella crittografia integrata.