HTTP/3
International standard | IETF |
---|---|
Introduced | June 2022 |
Website | https://httpwg.org/specs/rfc9114.html |
Internet history timeline |
Early research and development:
Merging the networks and creating the Internet:
Commercialization, privatization, broader access leads to the modern Internet:
Examples of Internet services:
|
HTTP/3 is the third major version of the
HTTP/3 uses similar semantics compared to earlier revisions of the protocol, including the same request methods, status codes, and message fields, but encodes them and maintains session state differently. However, partially due to the protocol's adoption of QUIC, HTTP/3 has lower latency and loads more quickly in real-world usage when compared with previous versions: in some cases over four times as fast than with HTTP/1.1 (which, for many websites, is the only HTTP version deployed).[5][6]
As of September 2024, HTTP/3 is supported by 95% of major web browsers (though not enabled for all
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
On 6 June 2022,
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.[20][21] There is client support for HTTPS resource records since Firefox 92, iOS 14, reported Safari 14 support, and Chromium supports it behind a flag.[22][23][24]
Implementations
Client
Browser | Version implemented (disabled by default) | Version shipped (enabled by default) | Comment | ||
---|---|---|---|---|---|
Chrome | Stable build (79) | December 2019 | 87[7] | April 2020[25] | 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[10] | April 2021[26] | |
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.[27] |
Libraries
Open-source libraries that implement client or server logic for QUIC and HTTP/3 include[28]
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.[34]
- Caddy web server v2.6.0 (released 20 September 2022) has HTTP/3 enabled by default.[35]
- Nginx supports HTTP/3 since 1.25.0 (released 23 May 2023). A technology preview of nginx with HTTP/3 support was released in June 2020.[36] Binary packages of nginx with HTTP/3 support have been released in February 2023.[37]
- Cloudflare distributes a patch for nginx that integrates the quiche HTTP/3 library into it.[38]
- Microsoft IIS support for HTTP/3 is enabled natively with Windows Server 2022/Windows 11.[39]
- HAProxy supports HTTP/3 over QUIC since version 2.6 released on 31 May 2022.[40][41]
See also
- Fast and Secure Protocol – Terminal command scheme used to transfer data
References
- ^ . Proposed Standard.
- . NIC 2. INWG 72.
- . Proposed Standard.
- ^ "What is HTTP/3?". Cloudflare. Archived from the original on 4 July 2022. Retrieved 12 July 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 11 August 2024.
- ^ "Usage of HTTP/3 for websites". World Wide Web Technology Surveys. W3Techs. Retrieved 11 August 2024.
- ^ a b "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.
- ^ 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. 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.
- ^ 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.
- ^ "First HTTP/3 with curl". Daniel Stenberg. 5 August 2019. Retrieved 2 October 2019.
- ^ "HTTP3 (and QUIC)". Daniel Stenberg. 23 August 2023. Retrieved 27 August 2023.
- ^ "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.
External links
- Official website
- IETF QUIC Working Group on GitHub
- HTTP/3 explained (Daniel Stenberg)
- HTTP/3 on canIuse.com
- List of QUIC implementations on the IETF QUIC Working Group Wiki