Is there a publicly available reference implementation for HTTP 1.1?

After learning more about HTTP 1.1 and reading the specification, it seems to me that it would be helpful to create a publicly available reference implementation that can demonstrate the protocol. I assume this will provide ideal basic examples as well as working examples of those parts of the protocol that are often disabled on public servers (like TRACE).

I'm talking about running, public servers. The idea would be to show how HTTP (should) work across the actually running web server (and source). The user can create arbitrary requests with a script or the like to see how the server responds. I assume it will be open source. This will likely build on an existing web server implantation (like Apache), possibly with extensions supporting the entire protocol where the existing impl exists. (transfer-encoding compression, etc.). I know this last part is a pipe dream, I am just putting it here as an explanation.

I understand that HTTP is a very broad protocol, so the reference implementation will not be comprehensive. I can imagine many, many reasons why something like this doesn't exist, and I know I can run my own local server and play with it (I've been doing this for years). I know I can oppose known existing public servers (google, etc.). But, I'm wondering if there is something like a public reference implementation.

+3


source to share


1 answer


As an IETF specification, HTTP / 1.1 has no reference implementation. Instead, "at least two independent interoperable implementations with broad deployment and successful track record" are required.

From the report for the HTTP / 1.1 protocol for the draft standard, you can see that there was much more:

We have implementation and test reports from 26 implementations

You speak:

I can imagine many, many reasons why something like this would not exist.



Here's one: for a fairly complex specification, you don't want people to design a specific implementation. Any implementation of "reference" will have errors, which will then be caught by subsequent code generated against that reference.

The specification is authoritative; in case the implementation diverges, you should consult the specification (and its errors) for correct behavior.

I know I can oppose known existing public servers

Quite right. Per Dao IETF :

"We believe in rough consensus and code launch"

+2


source







All Articles