The many versions of HTTP
Thirty years of HTTP, from the first written HTTP/1.0 and 1.1 specifications through the split into parts, to one shared set of semantics over HTTP/1.1, HTTP/2 and HTTP/3.
- 01
HTTP/1.0 The first written spec
RFC 1945 documented what browsers and servers were already doing in the mid-1990s. It is Informational, not a standard.
- 02
HTTP/1.1 arrives Persistent connections
HTTP/1.1 added persistent connections, chunked transfer and better caching. The first version was superseded within two years by the revision that stayed in use for fifteen.
- 03
Split into parts 2014
RFC 2616 was split into six documents covering messaging, semantics, conditional requests, ranges, caching and authentication. All six have since been replaced.
RFC 7230 Message Syntax and RoutingRFC 7231 Semantics and ContentRFC 7232 Conditional RequestsRFC 7233 Range RequestsRFC 7234 CachingRFC 7235 Authentication
- 04
One semantics, three syntaxes 2022
The HTTP meaning of methods, status codes and header fields now lives in one document that every version of HTTP shares. HTTP caching and HTTP/1.1 messaging have their own documents.
RFC 9110 HTTP SemanticsRFC 9111 HTTP CachingRFC 9112 HTTP/1.1
- 05
HTTP/2 Multiplexing
HTTP/2 puts requests in binary frames and multiplexes them on one TCP connection, with header compression (HPACK). RFC 7540 was replaced by RFC 9113 in 2022.
RFC 7540 HTTP/2 (original)RFC 9113 HTTP/2 (current)RFC 7541 HPACK
- 06
HTTP/3 and QUIC Over UDP
HTTP/3 maps HTTP onto QUIC, a UDP-based transport with built-in encryption, so one lost packet no longer stalls every stream.