HomeThe ClassicsFarai's Codelab

A New Definition of HTTP

Published:

See A New Definition of HTTP on www.mnot.net

The emergence of HTTP/2 and now HTTP/3 have made it clear that HTTP’s “core” semantics don’t change between protocol versions. For example, methods and status codes mean the same thing no matter what version of the protocol you use; with a few exceptions, the same can be said about header fields.

However, RFC7231 entangled the definition of these core semantics with the specifics of HTTP/1.1. Given the progression of new protocol versions, the HTTP Working Group decided that it would be better to have a clear, generic defintion of the versionless semantics of HTTP separated from the individual wire protocols that people use.

Im not deep into HTTP specs, but this shift makes sense.

Tangent

when a protocol is important as HTTP, it needs constant maintenance and documentation improvements. Consider DNS in comparison; while there is interop in that community, that’s largely because there’s a group of “insiders” who know how the protocol really works, rather than good specification (although there are efforts to fix that, if only informally). Also, HTTP is implemented and directly used by a much broader community of developers.

Reading this made me worry about the sustainability of these systems which people make. Open source doesn’t have a good track record in fostering new developers. You can’t live forever and even if you do you won’t be interested in a project all the time so keeping knowledge alive is important. If I’d the money, I’d invest in grants to support efforts in keeping the open source knowledge base alive between generations.