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)|
|Introduced||Internet-Draft as of September 2020[update]|
HTTP semantics are consistent across versions: the same request methods, status codes, and message fields are typically applicable to all versions. The differences are in the mapping of these semantics to underlying transports. Both HTTP/1.1 and HTTP/2 use TCP as their transport. HTTP/3 uses QUIC, a transport layer network protocol developed initially by Google where user space congestion control is used over the User 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's loss recovery mechanisms, a lost or reordered packet causes all active transactions 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.
As of September 2020[update], the HTTP/3 protocol is an Internet-Draft and has multiple implementations. According to W3Techs 7.1% of the top 10 million websites support HTTP/3. Stable versions of Firefox and Chrome support HTTP/3 in its current form, but have it disabled by default. Safari 14 will ship with HTTP/3 enabled by default.