HTTP/3
This article provides insufficient context for those unfamiliar with the subject. (November 2019) (Learn how and when to remove this template message) |
| International standard | Hypertext Transfer Protocol Version 3 (HTTP/3) (draft) |
|---|---|
| Developed by | IETF |
| Introduced | Internet-Draft as of May 2020[update] |
HTTP/3 is the upcoming third major version of the Hypertext Transfer Protocol used to exchange information on the World Wide Web, succeeding HTTP/2.[1][2] HTTP/3 is a draft based on a previous RFC draft, then named "Hypertext Transfer Protocol (HTTP) over QUIC".[3] QUIC is a transport layer network protocol developed initially 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 to HTTP/3, to "clearly identify it as another binding of HTTP semantics to the wire protocol ... so people understand its separation from QUIC" and to pass its development from the QUIC Working Group to the HTTP Working Group after finalizing and publishing the draft.[4] Nottingham's proposal was accepted by fellow IETF members a few days later in November 2018.[3]
Support for HTTP/3 was added to Chrome (Canary build) in September 2019, and while HTTP/3 is not yet on by default in any browser, by 2020 HTTP/3 has non-default support in stable versions of Chrome and Firefox and can be enabled.[5][6][7] Experimental support for HTTP/3 was added to Safari Technology Preview on April 8, 2020.[8]
Implementations[edit]
Browser[edit]
| Browser | Version implemented | Date |
|---|---|---|
| Chrome | Stable build (79) | December 2019 |
| Firefox | Stable build (72.0.1) | January 2020 |
| Safari | Safari Technology Preview 104 | April 2020 |
| Edge | Edge (Canary build) | 2020[9] |
Libraries[edit]
Open source libraries that implement client or server logic for QUIC and HTTP/3 are available.[10]
| Name | Programming language | Company | Repository |
|---|---|---|---|
| quiche | Rust | Cloudflare | https://github.com/cloudflare/quiche |
| neqo | Rust | Mozilla | https://github.com/mozilla/neqo |
| proxygen | C++ | https://github.com/facebook/proxygen#quic-and-http3 | |
| Cronet | C++ | 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[11][12] | C | https://github.com/curl/curl | |
| MsQuic[13] | 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 | |
| http3 | Haskell | https://github.com/kazu-yamamoto/http3 |
Cloudflare's quiche library can be used as a patch to nginx.[14] Support for HTTP/3 is slated for the 1.17 release of nginx.[15] A technology preview of nginx with HTTP/3 support has been released in June 2020.[16]
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]
- ^ Bishop, M. (1 May 2020). "Hypertext Transfer Protocol Version 3 (HTTP/3)". quicwg.org. Retrieved 2 May 2020.
- ^ Bishop, Mike (21 February 2020). Hypertext Transfer Protocol Version 3 (HTTP/3). IETF. I-D draft-ietf-quic-http-27.
- ^ a b Cimpanu, Catalin (12 November 2018). "HTTP-over-QUIC to be renamed HTTP/3 | ZDNet". ZDNet. Retrieved 12 November 2018.
- ^ Nottingham, Mark (28 October 2018). "Identifying our deliverables". IETF Mail Archive.
- ^ "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Retrieved 19 January 2020.
- ^ Daniel, Stenberg. "Daniel Stenberg announces HTTP/3 support in Firefox Nightly". Twitter. Retrieved 5 November 2019.
- ^ Cimpanu, Catalin (26 September 2019). "Cloudflare, Google Chrome, and Firefox add HTTP/3 support". ZDNet. Retrieved 27 September 2019.
- ^ https://webkit.org/blog/10264/release-notes-for-safari-technology-preview-104/
- ^ Inc, Cloudflare. "Microsoft Edge - HTTP/3 Docs". developers.cloudflare.com. Retrieved 2 May 2020.
- ^ Internet-Drafts that make up the base QUIC specification: quicwg/base-drafts, IETF QUIC WG, 12 November 2019, retrieved 13 November 2019
- ^ "First HTTP/3 with curl". Daniel Stenberg. 5 August 2019. Retrieved 2 October 2019.
- ^ "cURL HTTP3 wiki". Daniel Stenberg. 26 September 2019. Retrieved 2 October 2019.
- ^ "MsQuic is Open Source". 28 April 2020. Retrieved 28 April 2020.
- ^ "Experiment with HTTP/3 using NGINX and quiche". The Cloudflare Blog. 17 October 2019. Retrieved 9 November 2019.
- ^ "Milestone nginx-1.17". trac.nginx.org. Retrieved 9 November 2019.
- ^ "Introducing a Technology Preview of NGINX Support for QUIC and HTTP/3". NGINX. 10 June 2020. Retrieved 11 June 2020.

