HTTP/3

versione del protocollo di rete HTTP

HTTP/3 è la terza versione del protocollo Hypertext Transfer Protocol usato per il World Wide Web nonché il successore di HTTP/2.[1][2] HTTP/3 è basato su una precedente bozza di RFC intitolata Hypertext Transfer Protocol (HTTP) over QUIC.[3] 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 modifica

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.[4] La sua proposta venne accettata dagli altri membri IETF dopo pochi giorni, a novembre 2018.[3]

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.[5][6][7] In via sperimentale, il supporto di HTTP/3 è stato reso disponibile anche su Safari Technology Preview l'8 aprile 2020.[8]

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

Implementazioni modifica

Browser modifica

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[10]

Librerie modifica

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

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[12][13] C https://github.com/curl/curl
MsQuic[14] 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,[15] che prevede di supportare HTTP/3 nella versione 1.17.[16]

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.[17]

Note modifica

  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. ^ a b (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, su 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.17, su trac.nginx.org. URL consultato il 9 novembre 2019.
  17. ^ (EN) nghttp3, su github.com.

Voci correlate modifica

Altri progetti modifica

Collegamenti esterni modifica