HTTP/3

HTTP/3 è la terza versione del protocollo Hypertext Transfer Protocol usato per il World Wide Web nonché il successore di HTTP/2. HTTP/3 è basato su una precedente bozza di RFC intitolata Hypertext Transfer Protocol (HTTP) over QUIC. QUIC è un protocollo di rete di livello di trasporto sviluppato originariamente da Google in cui il controllo della congestione nello spazio utente viene realizzato su protocollo User Datagram Protocol (UDP) e proprio l'appoggiarsi su QUIC/UDP invece che su TCP rappresenta la caratteristica distintiva di HTTP/3.

Storia

Comparazione tra le varie versioni di HTTP

Il 28 ottobre 2018 Mark Nottingham, responsabile dei gruppi di lavoro IETF HTTP e QUIC, nel contesto di una discussione in mailing list ha avanzato la richiesta ufficiale di rinominare HTTP-over-QUIC in HTTP/3, per "identificarlo chiaramente come un ulteriore legame tra la semantica dell'HTTP e il protocollo fisico... così che si capisca che è qualcosa di separato da QUIC" e di trasferire il suo sviluppo dal QUIC Working Group all'HTTP Working Group dopo il consolidamento e la pubblicazione della bozza. La sua proposta venne accettata dagli altri membri IETF dopo pochi giorni, a novembre 2018.

Il browser Chrome ha integrato il supporto di HTTP/3 nella "Canary build" di settembre 2019 e sebbene HTTP/3 non sia ancora usato di default in alcun browser, dal 2020 può essere abilitato nelle versioni stabili di Chrome e di Firefox. In via sperimentale, il supporto di HTTP/3 è stato reso disponibile anche su Safari Technology Preview l'8 aprile 2020.

Il 6 giugno 2022, IETF ha standardizzato HTTP/3 come RFC 9114.

Implementazioni

Browser

Browser Versione Data
Chrome 79 (stabile) dicembre 2019
Mozilla Firefox 72.0.1 (stabile) gennaio 2020
Safari Safari Technology Preview 104 aprile 2020
Edge Edge (Canary build) 2020

Librerie

Sono disponibili le seguenti librerie open source che implementano le logiche di client o di server per QUIC e HTTP/3:

Nome Linguaggio di programmazione Azienda Repository
quiche Rust Cloudflare https://github.com/cloudflare/quiche
neqo Rust Mozilla https://github.com/mozilla/neqo
proxygen C++ Facebook https://github.com/facebook/proxygen#quic-and-http3
Cronet C++ Google https://github.com/chromium/chromium/tree/master/net/quic
lsquic C LiteSpeed https://github.com/litespeedtech/lsquic
nghttp3 C https://github.com/ngtcp2/nghttp3
h2o C https://github.com/h2o/h2o
libcurl C https://github.com/curl/curl
MsQuic C Microsoft https://github.com/microsoft/msquic
Flupke Java https://bitbucket.org/pjtr/flupke
aioquic Python https://github.com/aiortc/aioquic
quic-go Go https://github.com/lucas-clemente/quic-go
quic Haskell https://github.com/kazu-yamamoto/quic

La libreria quiche di Cloudflare può essere usata anche come patch di nginx, che supporta HTTP/3 dalla versione 1.25.

Sono inoltre disponibili alcune librerie che implementano una versione precedente della bozza del protocollo o della versione Google di QUIC (Q046 usato in Chrome 76), come per esempio nghttp3.

Note

  1. ↑ (EN) M. Bishop, Hypertext Transfer Protocol Version 3 (HTTP/3), su quicwg.org, 7 maggio 2020. URL consultato il 7 maggio 2020 (archiviato dall'url originale il 14 settembre 2019).
  2. ↑ (EN) Mike Bishop, Hypertext Transfer Protocol Version 3 (HTTP/3), su tools.ietf.org, IETF, 21 febbraio 2020.
  3. 1 2 (EN) Catalin Cimpanu, HTTP-over-QUIC to be renamed HTTP/3, 12 novembre 2018. URL consultato il 12 novembre 2018.
  4. ↑ (EN) Mark Nottingham, Identifying our deliverables, in IETF Mail Archive, 28 ottobre 2018.
  5. ↑ (EN) Can I use... Support tables for HTML5, CSS3, etc, su caniuse.com. URL consultato il 19 gennaio 2020.
  6. ↑ (EN) Stenberg Daniel, Daniel Stenberg announces HTTP/3 support in Firefox Nightly, su Twitter. URL consultato il 5 novembre 2019.
  7. ↑ (EN) Catalin Cimpanu, Cloudflare, Google Chrome, and Firefox add HTTP/3 support, su ZDNet, 26 settembre 2019. URL consultato il 27 settembre 2019.
  8. ↑ (EN) Release Notes for Safari Technology Preview 104, su webkit.org, 8 aprile 2020.
  9. ↑ (EN) RFC 9114 — HTTP/3, su datatracker.ietf.org, Internet Engineering Task Force.
  10. ↑ (EN) Cloudflare Inc, Microsoft Edge - HTTP/3 Docs, su developers.cloudflare.com. URL consultato il 2 maggio 2020 (archiviato dall'url originale il 26 aprile 2020).
  11. ↑ (EN) Internet-Drafts that make up the base QUIC specification: quicwg/base-drafts, su github.com, IETF QUIC WG, 12 novembre 2019. URL consultato il 13 novembre 2019.
  12. ↑ (EN) First HTTP/3 with curl, su daniel.haxx.se, Daniel Stenberg, 5 agosto 5 2019. URL consultato il 2 ottobre 2019.
  13. ↑ (EN) cURL HTTP3 wiki, su github.com, Daniel Stenberg, 26 settembre 2019. URL consultato il 2 ottobre 2019.
  14. ↑ (EN) MsQuic is Open Source, su techcommunity.microsoft.com, aprile 28, 2020. URL consultato il aprile 28, 2020.
  15. ↑ (EN) Experiment with HTTP/3 using NGINX and quiche, su The Cloudflare Blog, 17 ottobre 2019. URL consultato il 9 novembre 2019.
  16. ↑ (EN) Milestone nginx-1.25.0, su trac.nginx.org. URL consultato il 30 settembre 2024.
  17. ↑ (EN) nghttp3, su github.com.

Voci correlate

Altri progetti

Collegamenti esterni