📄 HTTP Documentation

HTTP is defined by these IETF RFCs and IANA registries.

Core Specifications

The “core” semantics of the HTTP protocol are defined by:

Those semantics are expressed “on the wire” in three ways:

Later versions of HTTP offer field compression:

These RFCs collectively obsolete all preceding RFCs defining HTTP, including RFC1945, RFC2068, RFC2616, RFC2617, RFC7230-RFC7235, and RFC7540.

Also relevant is the Structured Field Values specification, which is used in a growing number of headers and trailers:

Protocols built “on top” of HTTP should follow Best Current Practice, as documented here:

Extension Registries

There are a large number of HTTP extensions, including methods, status codes and headers. It’s important to note that they are all “part of” HTTP, as long as they’re listed in the appropriate registries:

Individual headers have their own registries that regulate permissible values, including:

This is a partial list of HTTP-relevant specifications, here for convenience. For the complete list of HTTP extensions, see the relevant registry.

Methods

Status Codes

Caching Extensions

Connection and Intermediary Extensions