HTTP/3
International standard | Bishop, Mike; Akamai. "RFC 9114: HTTP/3". rfc-editor. Retrieved 6 June 2022. (HTTP/3 also uses the completed RFC 9114 |
---|---|
Website | https://quicwg.org/ |
HTTP/3 is the third major version of the
HTTP/3 uses similar semantics compared to earlier revisions of the protocol, including the same
History
HTTP/3 originates from an Internet Draft adopted by the QUIC working group. The original proposal was named "HTTP/2 Semantics Using The QUIC Transport Protocol",[12] and later renamed "Hypertext Transfer Protocol (HTTP) over QUIC".[13]
On 28 October 2018 in a mailing list discussion, Mark Nottingham, Chair of the IETF HTTP and QUIC Working Groups, proposed renaming 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".[14] Nottingham's proposal was accepted by fellow IETF members a few days later. The HTTP working group was chartered to assist the QUIC working group during the design of HTTP/3, then assume responsibility for maintenance after publication.[15]
Support for HTTP/3 was added to
Comparison with HTTP/1.1 and HTTP/2
HTTP semantics are consistent across versions: the same
Proposed DNS resource records SVCB (service binding) and HTTPS would allow connecting without first receiving the Alt-Svc header via previous HTTP versions, therefore removing the 1 RTT of handshaking of TCP.[21][22] There is client support for HTTPS resource records since Firefox 92, iOS 14, reported Safari 14 support, and Chromium supports it behind a flag.[23][24][25]
Implementations
Client
Browser
Browser | Version implemented (disabled by default) | Version shipped (enabled by default) | Comment | ||
---|---|---|---|---|---|
Chrome | Stable build (79) | December 2019 | 87[6] | April 2020[26] | Earlier versions implemented other drafts of QUIC |
Edge | Stable build (79) | December 2019 | 87 | April 2020 | Edge 79 was the first version based on Chromium |
Firefox | Stable build (72.0.1) | January 2020 | 88[9] | April 2021[27] | |
Safari | Stable build (14.0) | September 2020 | 16.4 | March 2023 | Apple is testing HTTP/3 support on some Safari users starting with Safari 16.4.[28] |
Libraries
Open-source libraries that implement client or server logic for QUIC and HTTP/3 include[29]
Server
- On 7 June 2021, LiteSpeed Web Server (and OpenLiteSpeed) 6.0.2 was released and became the first version to enable HTTP/3 by default.[35]
- Caddy web server v2.6.0 (released 20 September 2022) has HTTP/3 enabled by default.[36]
- Nginx support for HTTP/3 is being worked on. A technology preview of nginx with HTTP/3 support was released in June 2020.[37] Binary packages of nginx with HTTP/3 support have been released in February 2023.[38]
- Cloudflare distributes a patch for nginx that integrates the quiche HTTP/3 library into it.[39]
- Microsoft IIS support for HTTP/3 is enabled natively with Windows Server 2022/Windows 11.[40]
- HAProxy supports HTTP/3 over QUIC since version 2.6 released on 31 May 2022.[41][42]
See also
References
- doi:10.17487/rfc0675.
- ^ "What is HTTP/3?". Cloudflare. Archived from the original on 4 July 2022. Retrieved 12 July 2022.
- ^ "HTTP/3". 6 June 2022. Retrieved 6 June 2022.
- S2CID 246936473.
- ^ "HTTP/3 is Fast". Request Metrics. Retrieved 1 July 2022.
- ^ a b c d e ""HTTP/3" | Can I use... Support tables for HTML5, CSS3, etc". canIuse.com. Retrieved 2 April 2023.
- ^ "Usage of HTTP/3 for websites". World Wide Web Technology Surveys. W3Techs. Retrieved 2 April 2023.
- ^ "Enabling QUIC in tip-of-tree". groups.google.com. Retrieved 8 April 2021.
- ^ a b c Damjanovic, Dragana (16 April 2021). "QUIC and HTTP/3 Support now in Firefox Nightly and Beta". Mozilla Hacks – the Web developer blog. Retrieved 17 April 2021.
{{cite web}}
: CS1 maint: url-status (link) - ^ "Apple Developer Documentation". developer.apple.com. Retrieved 16 February 2023.
- ^ a b "Safari 14 Release Notes". developer.apple.com. Retrieved 4 December 2020.
- ^ Shade, Robbie (8 July 2016). HTTP/2 Semantics Using The QUIC Transport Protocol. IETF. I-D draft-shade-quic-http2-mapping.
- ^ 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.
- ^ "Hypertext Transfer Protocol Charter". ietf.org. Retrieved 2 September 2020.
- ^ "Enabling QUIC in tip-of-tree". groups.google.com. Retrieved 8 April 2021.
- ^ 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.
- ^ "Release Notes for Safari Technology Preview 104". webkit.org. 8 April 2020. Retrieved 7 August 2020.
- ^ Ng, Gary (23 June 2020). "Apple's Safari Adds Support for HTTP3 in iOS 14 and macOS 11". iphoneincanada.ca. Retrieved 25 June 2021.
- ^ "HTTPS RR". MDN. Mozilla. Retrieved 25 October 2022.
- ^ Schwartz, Benjamin M.; Bishop, Mike; Nygren, Erik (12 June 2020). Service binding and parameter specification via the DNS. IETF. I-D draft-ietf-dnsop-svcb-https.
- ^ "Firefox 92 for developers". Mozilla Corporation. 7 September 2021. Retrieved 25 October 2022.
- Google Inc.Retrieved 25 October 2022.
- Stack Exchange Inc.Retrieved 25 October 2022.
- ^ "Enabling QUIC in tip-of-tree". groups.google.com. Retrieved 9 April 2021.
- ^ "Firefox Release Owners - MozillaWiki". wiki.mozilla.org. Retrieved 9 April 2021.
- ^ Jen Simmons (4 April 2023). "HTTP/3 support shipped in Safari 14.0". GitHub. Retrieved 7 April 2023.
- ^ "QUIC Implementations". GitHub. Retrieved 8 April 2021.
{{cite web}}
: CS1 maint: url-status (link) - ^ "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.
- ^ "HTTP/3 support in .NET 6". 17 September 2021. Retrieved 17 September 2021.
- ^ "HTTP/3 support in .NET 6". .NET Blog. 17 September 2021. Retrieved 12 January 2022.
- ^ "LiteSpeed Web Server Release Log - LiteSpeed Technologies". www.litespeedtech.com. Retrieved 12 February 2022.
Enable HTTP/3 v1 by default.
- ^ "Release 2.6.0 · caddyserver/caddy". Github. 22 September 2022. Retrieved 20 September 2022.
- ^ "Introducing a Technology Preview of NGINX Support for QUIC and HTTP/3". NGINX. 10 June 2020. Retrieved 11 June 2020.
- ^ "Binary Packages Now Available for the Preview NGINX QUIC+HTTP/3 Implementation". NGINX. 8 February 2023. Retrieved 30 March 2023.
- ^ "Experiment with HTTP/3 using NGINX and quiche". The Cloudflare Blog. 17 October 2019. Retrieved 9 November 2019.
- ^ Tratcher. "Use ASP.NET Core with HTTP/3 on IIS". docs.microsoft.com. Retrieved 29 April 2022.
- ^ "Announcing HAProxy 2.6". HAProxy Blog. 31 May 2022.
- ^ "QUIC Implementation in HAProxy". HAProxyConf video presentation.