HTTP/3

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

HTTP/3
International standardHypertext Transfer Protocol Version 3 (HTTP/3) (draft)
Developed byIETF
IntroducedInternet-Draft as of November 2019

HTTP/3 or simply H3[1] is the upcoming third major version of the Hypertext Transfer Protocol used to exchange information on the World Wide Web, succeeding HTTP/2.[2][3] HTTP/3 is a draft based on a previous RFC draft, then named "Hypertext Transfer Protocol (HTTP) over QUIC".[4] QUIC is a transport layer network protocol initially developed by Google where user space congestion control is used over the User Datagram Protocol (UDP).

On 28 October 2018 in a mailing list discussion, Mark Nottingham, Chair of the IETF HTTP and QUIC Working Groups, made the official request to rename HTTP-over-QUIC as HTTP/3 to "clearly identify it as another binding of HTTP semantics to the wire protocol ... so people understand its separation from QUIC" and pass its development from the QUIC Working Group to the HTTP Working Group after finalizing and publishing the draft.[5] Nottingham's proposal was accepted by fellow IETF a few days later in November 2018.[4]

Support for HTTP/3 was added to Chrome (Canary build) in September 2019. Support in Firefox Nightly arrived in November 2019.[6][7]

Implementations[edit]

Open source libraries that implement client or server logic for QUIC and HTTP/3 are available.[8]

Name Programming language Company 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
C++ Google https://github.com/chromium/chromium/tree/master/net/quic
lsquic C LiteSpeed https://github.com/litespeedtech/lsquic
h2o C https://github.com/h2o/h2o
libcurl[9][10] C https://github.com/curl/curl
aioquic Python https://github.com/aiortc/aioquic
quic-go Go https://github.com/lucas-clemente/quic-go

Cloudflare's quiche library can be used as a patch to nginx.[11] Support for HTTP/3 is slated for the 1.17 release of nginx.[12]

There are a number of libraries that implement an older draft of the protocol or Google's versions of QUIC (e.g. Q046 used in Chrome 76), such as nghttp3.

See also[edit]

References[edit]

  1. ^ "Litespeed and Facebook Complete First HTTP/3 Server Test". LiteSpeed Blog. 12 November 2018. Retrieved 2 August 2019.
  2. ^ Bishop, M. (19 September 2019). "Hypertext Transfer Protocol Version 3 (HTTP/3)". quicwg.org. Retrieved 22 September 2019.
  3. ^ Bishop, Mike (4 November 2019). Hypertext Transfer Protocol Version 3 (HTTP/3). IETF. I-D draft-ietf-quic-http-23.
  4. ^ a b Cimpanu, Catalin (12 November 2018). "HTTP-over-QUIC to be renamed HTTP/3 | ZDNet". ZDNet. Retrieved 12 November 2018.
  5. ^ Nottingham, Mark (28 October 2018). "Identifying our deliverables". IETF Mail Archive.
  6. ^ Daniel, Stenberg. "Daniel Stenberg announces HTTP/3 support in Firefox Nightly". Twitter. Retrieved 5 November 2019.
  7. ^ Cimpanu, Catalin (26 September 2019). "Cloudflare, Google Chrome, and Firefox add HTTP/3 support". ZDNet. Retrieved 27 September 2019.
  8. ^ Internet-Drafts that make up the base QUIC specification: quicwg/base-drafts, IETF QUIC WG, 12 November 2019, retrieved 13 November 2019
  9. ^ "First HTTP/3 with curl". Daniel Stenberg. 5 August 2019. Retrieved 2 October 2019.
  10. ^ "cURL HTTP3 wiki". Daniel Stenberg. 26 September 2019. Retrieved 2 October 2019.
  11. ^ "Experiment with HTTP/3 using NGINX and quiche". The Cloudflare Blog. 17 October 2019. Retrieved 9 November 2019.
  12. ^ "Milestone nginx-1.17". trac.nginx.org. Retrieved 9 November 2019.

External links[edit]