The “core” of the HTTP protocol is defined by two specifications:
HTTP/2 is an updated way to use HTTP “on the wire”. and is an alternative to parts of RFC7230. See the HTTP/2 Home for more.
Additionally, the following are optional to implement, but widely used:
These RFCs collectively obsolete all preceding RFCs defining HTTP, including RFC1945, RFC2068, RFC2616 and RFC2617.
If you find problems with the HTTP/1.1 specifications, you can log an issue in this repo.
This is a partial list of HTTP-relevant specifications, here for convenience. For the complete list of HTTP extensions, see the relevant registry.
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: