Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

HTTP/3

From Wikipedia, the free encyclopedia
Layer 7 network protocol published
HTTP/3
International standardRFC 9114[1] (HTTP/3 also uses the completedQUIC protocol described in RFC 9000 and related RFCs such as RFC 9001)
Developed byIETF
IntroducedJune 2022
Websitehttps://httpwg.org/specs/rfc9114.html

HTTP/3 is the third major version of theHypertext Transfer Protocol used to exchange information on theWorld Wide Web, complementing the widely deployedHTTP/1.1 andHTTP/2. Unlike previous versions which relied on the well-establishedTCP (published in 1974),[2] HTTP/3 usesQUIC (officially introduced in 2021),[3] amultiplexed transport protocol built onUDP.[4]

HTTP/3 uses similar semantics compared to earlier revisions of the protocol, including the samerequest methods,status codes, andmessage 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 faster 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 more than 95% of major web browsers in use[7] and 34% of the top 10 million websites.[8] It has been supported byChromium (and derived projects includingGoogle Chrome,Microsoft Edge,Samsung Internet, andOpera)[9] since April 2020 and byMozilla Firefox since May 2021.[7][10]Safari 16+ has included support, and it was enabled by default starting with 16.4[11]

History

[edit]
Protocol stack of HTTP/3 compared to HTTP/1.1 and HTTP/2

HTTP/3 originates from anInternet 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 theIETF 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 toChrome (Canary build) in September 2019 and then eventually reached stable builds, but was disabled by a feature flag. It was enabled by default in April 2020.[9] Firefox added support for HTTP/3 in November 2019 through a feature flag[7][16][17] and started enabling it by default in April 2021 in Firefox 88.[7][10] Experimental support for HTTP/3 was added to Safari Technology Preview on April 8, 2020[18] and was included with Safari 14 that ships withiOS 14 andmacOS 11,.[19][20]Starting September 2024, HTTP/3 is supported for all users on Safari 16 or newer.[11]

On 6 June 2022,IETF published HTTP/3 as aProposed Standard inRFC 9114[1].

Comparison with HTTP/1.1 and HTTP/2

[edit]

HTTP semantics are consistent across versions: the samerequest methods,status codes, andmessage fields are typically applicable to all versions. The differences are in the mapping of these semantics to underlying transports. BothHTTP/1.1 andHTTP/2 useTCP as their transport. HTTP/3 usesQUIC, atransport layernetwork protocol which usesuser spacecongestion control over theUser Datagram Protocol (UDP). The switch to QUIC aims to fix a major problem of HTTP/2 called "head-of-line blocking": because the parallel nature of HTTP/2's multiplexing is not visible to TCP'sloss recovery mechanisms, a lost or reorderedpacket causes all activetransactions to experience a stall regardless of whether that transaction was impacted by the lost packet. Because QUIC provides native multiplexing, lost packets only impact the streams where data has been lost.

The HTTPSDNS resource record as defined inRFC 9460[21] allows for connecting without first receiving the Alt-Svc header via previous HTTP versions, therefore removing the 1 RTT of handshaking of TCP.[22][23] There is client support for HTTPS resource records since Firefox 92, iOS 14, reported Safari 14 support, and Chromium supports it behind a flag.[24][25][26]

Implementations

[edit]

Client

[edit]
Browser support for HTTP/3
BrowserVersion implemented (disabled by default)Version shipped (enabled by default)Comment
ChromeStable build (79)December 201987[7]April 2020[27]Earlier versions implemented other drafts of QUIC
EdgeStable build (79)December 201987April 2020Edge 79 was the first version based on Chromium
FirefoxStable build (72.0.1)January 202088[10]April 2021[28]
SafariStable build (14.0)September 202016.4September 2024Apple tested HTTP/3 support on some Safari users starting with Safari 16.4.[29]

Starting September 2024, HTTP/3 is supported for all users on Safari 16 or newer.[11]

Libraries

[edit]

Open-sourcelibraries that implement client or server logic for QUIC and HTTP/3 include[30]

Libraries implementing HTTP/3
NameClientServerProgramming languageCompanyRepository
lsquicYesYesCLiteSpeedhttps://github.com/litespeedtech/lsquic
nghttp3YesYesChttps://github.com/ngtcp2/nghttp3
h2oNoYesChttps://github.com/h2o/h2o
libcurl[31][32]YesNoChttps://github.com/curl/curl
MsQuic[33]YesYesCMicrosofthttps://github.com/microsoft/msquic
proxygenYesYesC++Facebookhttps://github.com/facebook/proxygen#quic-and-http3
CronetYesYesC++Googlehttps://github.com/chromium/chromium/tree/main/net/quic
.NET[34]YesYesC# (using MsQuic)[35]Microsofthttps://github.com/dotnet
quic-goYesYesGohttps://github.com/quic-go/quic-go
http3YesYesHaskellhttps://github.com/kazu-yamamoto/http3
KwikYesYesJavahttps://github.com/ptrd/kwik
FlupkeYesYesJavahttps://bitbucket.org/pjtr/flupke
aioquicYesYesPythonhttps://github.com/aiortc/aioquic
quicheYesYesRustCloudflarehttps://github.com/cloudflare/quiche
neqoYesYesRustMozillahttps://github.com/mozilla/neqo
quinnYesYesRusthttps://github.com/quinn-rs/quinn
s2n-quicYesYesRustAmazon Web Serviceshttps://github.com/aws/s2n-quic

Server

[edit]
  • 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.[36]
  • Caddy web server v2.6.0 (released 20 September 2022) has HTTP/3 enabled by default.[37]
  • 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.[38] Binary packages of nginx with HTTP/3 support have been released in February 2023.[39]
  • Cloudflare distributes a patch for nginx that integrates the quiche HTTP/3 library into it.[40]
  • Microsoft IIS support for HTTP/3 is enabled natively with Windows Server 2022/Windows 11.[41]
  • HAProxy supports HTTP/3 over QUIC since version 2.6 released on 31 May 2022.[42][43]
  • Nimble Streamer supports HTTP/3 since 4.1.8-1[44] for HTTP-based protocols.

See also

[edit]

References

[edit]
  1. ^abM. Bishop, ed. (June 2022).HTTP/3.Internet Engineering Task Force.doi:10.17487/RFC9114.ISSN 2070-1721.RFC9114.Proposed Standard.
  2. ^V. Cerf;Y. Dalal; C. Sunshine (December 1974).SPECIFICATION OF INTERNET TRANSMISSION CONTROL PROGRAM. Network Working Group.doi:10.17487/RFC0675.RFC675.Obsolete. Obsoleted byRFC 7805. NIC 2. INWG 72.
  3. ^J. Iyengar; M. Thomson, eds. (May 2021).QUIC: A UDP-Based Multiplexed and Secure Transport.Internet Engineering Task Force.doi:10.17487/RFC9000.ISSN 2070-1721.RFC9000.Proposed Standard.
  4. ^"What is HTTP/3?".Cloudflare.Archived from the original on 4 July 2022. Retrieved12 July 2022.
  5. ^Perna, Gianluca; Trevisan, Martino; Giordano, Danilo; Drago, Idilio (1 April 2022)."A first look at HTTP/3 adoption and performance".Computer Communications.187:115–124.doi:10.1016/j.comcom.2022.02.005.hdl:11368/3025202.ISSN 0140-3664.S2CID 246936473.
  6. ^"HTTP/3 is Fast".Request Metrics. Retrieved1 July 2022.
  7. ^abcde""HTTP/3" | Can I use... Support tables for HTML5, CSS3, etc".canIuse.com. Retrieved11 August 2024.
  8. ^"Usage of HTTP/3 for websites".World Wide Web Technology Surveys. W3Techs. Retrieved11 August 2024.
  9. ^ab"Enabling QUIC in tip-of-tree".groups.google.com. Retrieved8 April 2021.
  10. ^abcDamjanovic, Dragana (16 April 2021)."QUIC and HTTP/3 Support now in Firefox Nightly and Beta".Mozilla Hacks – the Web developer blog. Retrieved17 April 2021.
  11. ^abcJen Simmons (30 October 2024)."Updating Safari support for HTTP3".GitHub. Retrieved20 July 2025.
  12. ^Shade, Robbie (8 July 2016).HTTP/2 Semantics Using The QUIC Transport Protocol.IETF. I-D draft-shade-quic-http2-mapping.
  13. ^Cimpanu, Catalin (12 November 2018)."HTTP-over-QUIC to be renamed HTTP/3".ZDNet. Retrieved12 November 2018.
  14. ^Nottingham, Mark (28 October 2018)."Identifying our deliverables".IETF Mail Archive.
  15. ^"Hypertext Transfer Protocol Charter".ietf.org. Retrieved2 September 2020.
  16. ^Daniel, Stenberg."Daniel Stenberg announces HTTP/3 support in Firefox Nightly".Twitter. Retrieved5 November 2019.
  17. ^Cimpanu, Catalin (26 September 2019)."Cloudflare, Google Chrome, and Firefox add HTTP/3 support".ZDNet. Retrieved27 September 2019.
  18. ^"Release Notes for Safari Technology Preview 104".webkit.org. 8 April 2020. Retrieved7 August 2020.
  19. ^"Safari 14 Release Notes".developer.apple.com. Retrieved4 December 2020.
  20. ^Ng, Gary (23 June 2020)."Apple's Safari Adds Support for HTTP3 in iOS 14 and macOS 11".iphoneincanada.ca. Retrieved25 June 2021.
  21. ^Benjamin M. Schwartz; Mike Bishop; Erik Nygren (November 2023).Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records).Internet Engineering Task Force.doi:10.17487/RFC9460.ISSN 2070-1721.RFC9460.Proposed Standard.
  22. ^"HTTPS RR".MDN.Mozilla. Retrieved25 October 2022.
  23. ^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.
  24. ^"Firefox 92 for developers".Mozilla Corporation. 7 September 2021. Retrieved25 October 2022.
  25. ^"Feature: HTTP->HTTPS redirect for HTTPS DNS records".Google Inc. Retrieved25 October 2022.
  26. ^Patrick Mevzek (24 August 2021)."What's the use case of SVCB (type 65, service binding) RR".Stack Exchange Inc. Retrieved25 October 2022.
  27. ^"Enabling QUIC in tip-of-tree".groups.google.com. Retrieved9 April 2021.
  28. ^"Firefox Release Owners - MozillaWiki".wiki.mozilla.org. Retrieved9 April 2021.
  29. ^Jen Simmons (4 April 2023)."HTTP/3 support shipped in Safari 14.0".GitHub. Retrieved20 July 2025.
  30. ^"QUIC Implementations".GitHub. Retrieved8 April 2021.
  31. ^"First HTTP/3 with curl". Daniel Stenberg. 5 August 2019. Retrieved2 October 2019.
  32. ^"HTTP3 (and QUIC)". Daniel Stenberg. 23 August 2023. Retrieved27 August 2023.
  33. ^"MsQuic is Open Source". 28 April 2020. Retrieved28 April 2020.
  34. ^"HTTP/3 support in .NET 6". 17 September 2021. Retrieved17 September 2021.
  35. ^"HTTP/3 support in .NET 6"..NET Blog. 17 September 2021. Retrieved12 January 2022.
  36. ^"LiteSpeed Web Server Release Log - LiteSpeed Technologies".www.litespeedtech.com. Retrieved12 February 2022.Enable HTTP/3 v1 by default.
  37. ^"Release 2.6.0 · caddyserver/caddy".Github. 22 September 2022. Retrieved20 September 2022.
  38. ^"Introducing a Technology Preview of NGINX Support for QUIC and HTTP/3".NGINX. 10 June 2020. Retrieved11 June 2020.
  39. ^"Binary Packages Now Available for the Preview NGINX QUIC+HTTP/3 Implementation".NGINX. 8 February 2023. Retrieved30 March 2023.
  40. ^"Experiment with HTTP/3 using NGINX and quiche".The Cloudflare Blog. 17 October 2019. Retrieved9 November 2019.
  41. ^Tratcher."Use ASP.NET Core with HTTP/3 on IIS".docs.microsoft.com. Retrieved29 April 2022.
  42. ^"Announcing HAProxy 2.6".HAProxy Blog. 31 May 2022.
  43. ^"QUIC Implementation in HAProxy".HAProxyConf video presentation. 25 January 2023.
  44. ^"HTTP/3 and QUIC support in Nimble Streamer".NGINX. 14 February 2025. Retrieved17 February 2025.

External links

[edit]
Protocols
Server APIs
Apache modules
Topics
Browser APIs
Web APIs
WHATWG
W3C
Khronos
Others
Topics
Related topics
Features, standards & protocols
Features
Web standards
Protocols
Active
Blink-based
Proprietary
FOSS
Gecko-based
Goanna-based
WebKit-based
Multi-engine
Other
Discontinued
Blink-based
Gecko-based
MSHTML-based
WebKit-based
Other

Retrieved from "https://en.wikipedia.org/w/index.php?title=HTTP/3&oldid=1328736802"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp