The most important RFCs to understand HTTP/3 and QUIC
A non-comprehensive collection of specifications related to HTTP and the underlying security and transport-layer protocols
The RFC (Request for Comments) Series is a numbered collection of technical specifications that standardize many of the procedures and protocols used in internet-based systems, including the communication protocols of the Internet Protocol Suite, e.g. HTTP, QUIC, UDP, TCP, and others.
While the RFC Series is available for anyone to peruse, and each RFC has its own number, it's not always easy to find all the RFCs related to a particular subject.
The catalog below includes the most important RFCs related to the recently published HTTP/3 and QUIC protocols, the previous versions of HTTP, and the underlying transport-layer and security protocols (QUIC, UDP, and TCP for transport and TLS for security).
Note that this is not a comprehensive list, and there may exist other relevant specifications, too, that are not included in the collection below.
The RFCs are listed in numeric order.
Status: Internet Standard
"A specification for which significant implementation and successful operational experience has been obtained may be elevated to the Internet Standard level. An Internet Standard (which may simply be referred to as a Standard) is characterized by a high degree of technical maturity and by a generally held belief that the specified protocol or service provides significant benefit to the Internet community.
A specification that reaches the status of Standard is assigned a number in the STD Series while retaining its RFC number."
Definition of an Internet Standard – RFC 2026, 4.1.3
- RFC 768 (STD 6*) – UDP (User Datagram Protocol)
- RFC 1122 (STD 3) – Requirements for Internet Hosts – Communication Layers (the Internet Protocol Suite, also known as the TCP/IP model)
- RFC 9110 (STD 97) – HTTP Semantics
- RFC 9111 (STD 98) – HTTP Caching
- RFC 9112 (STD 99) – HTTP/1.1 (Hypertext Transfer Protocol v1.1)
- RFC 9293 (STD 7) – TCP (Transmission Control Protocol)
*STD = Standard Series
Status: Proposed Standard
"A Proposed Standard specification is generally stable, has resolved known design choices, is believed to be well-understood, has received significant community review, and appears to enjoy enough community interest to be considered valuable. However, further experience might result in a change or even retraction of the specification before it advances."
Definition of a Proposed Standard – RFC 2026, 4.1.1
Protocols
- RFC 5246 – TLS 1.2 (Transport Layer Security v1.2)
- RFC 8446 – TLS 1.3 (Transport Layer Security v1.3)
- RFC 9000 – QUIC: A UDP-Based Multiplexed and Secure Transport
- RFC 9113 – HTTP/2 (Hypertext Transfer Protocol v2)
- RFC 9114 – HTTP/3 (Hypertext Transfer Protocol v3)
Features/extensions of the above protocols
- RFC 7541 – HPACK: Header Compression for HTTP/2
- RFC 8999 – Version-Independent Properties of QUIC
- RFC 9001 – Using TLS to Secure QUIC
- RFC 9002 – QUIC Loss Detection and Congestion Control
- RFC 9204 – QPACK: Field Compression for HTTP/3
- RFC 9218 – Extensible Prioritization Scheme for HTTP (applicable to HTTP/2 and HTTP/3)
- RFC 9221 – An Unreliable Datagram Extension to QUIC
Historical versions of HTTP
- RFC 1945 – HTTP/1.0 (not in use anymore; status: informational)
- The Original HTTP as defined in 1991 – HTTP/0.9 (not included in the RFC Series)
Meta RFCs
**BCP = Best Current Practice Series