Paragone con HTTP/2

HTTP/3 è stato disegnato per QUIC, che è un protocollo di trasporto autonomo nel gestire i proprii flussi.

HTTP/2 è stato concepito su TCP, quindi gestisce i sotto-flussi all'interno dello strato HTTP.

Somiglianze

I due protocolli hanno virtualmente un insieme di caratteristiche identico.

  • Entrambi offrono streams (flussi)

  • Entrambi supportano la modalità "server push"

  • Entrambi utilizzano la compressione degli header, QPACK e HPACK risultano molto simili nel design funzionale

  • Entrambi sfruttano il multiplexing via flussi, su una singola connessione

  • Entrambi i protocolli contengono la nozione di priorità di flusso

Differenze

Le differenze riguardano i dettagli, soprattutto in relazione al fatto che HTTP/3 usi QUIC:

  • HTTP/3 funziona meglio con i "dati anticipati" grazie al supporto per la negoziazione a 0-RTT, mentre sappiamo che il TCP Fast Open accoppiato a TLS spesso incontra problemi, inviando comunque minor quantità di dati

  • Le negoziazioni (handshakes) sono molto più rapide in HTTP/3 grazie a QUIC

  • Non esistono versioni non crittate o non sicure di HTTP/3. HTTP/2 può ancora essere implementato ed utilizzato senza HTTPS - benché molto raro su Internet

  • HTTP/2 può essere negoziato direttamente all'interno di una negoziazione TLS grazie all'estensione ALPN. Diversamente, in HTTP/3 (essendo su QUIC) si dovrà a priori informare il client con una risposta contenente l'intestazione Alt-Svc: prima che il client stesso possa avere conoscenza di tale risorsa.

Last updated