- From: Poul-Henning Kamp <phk@phk.freebsd.dk>
- Date: Fri, 10 Feb 2012 09:10:30 +0000
- To: Mark Nottingham <mnot@mnot.net>
- cc: HTTP Working Group <ietf-http-wg@w3.org>
In message <D0E5F9D3-9827-4228-B101-39705918132F@mnot.net>, Mark Nottingham wri
tes:
>Based on the feedback I've seen on-list and discussions with folks about
>it, I've revised the proposal for our new charter; see below. Please
>provide timely feedback; I'd like to get this to the IESG soon.
Here is a counter-proposal, which takes a different approach:
1. Define the minimal transport primitives all HTTP/2.0 transport
protocols SHALL offer.
Something like:
Client sends request consisting of:
Primitive (GET/PUT/POST)
Content-metadata (headers)
Content-body (zero or more bytes)
Server returns response consisting of:
Response (%03d)
Content-metadata (headers)
Content-body (zero or more bytes)
This in effect turns a HTTP request into a high-level IP
datagram giving the same fundamental advantage that every
transport from HTTP-over-stone-tablets and up will work.
2. Define how to deal with transport "value add"
By "value-add" I'm thinking of stuff like:
Indication of assumed Session-membership
Indication of assumed Identity (X-Forward-for)
Transparency Guarantee (ie: level of guarantee content is unmolested)
Privacy Guarantee (ie: level of guarantee nobody saw the content)
Authentification Guarantee (ie: level of guarantee we know who it is)
Indicative delivery (ie: chunked encoding + optional final status)
Bandwidth/RTT estimate
Reverse transactions (server push) (This may need #1 text)
etc.
I would deal with these by:
1) creating a registry for them,
2) defining transport primitives to request, indicate and
explore their availability end-to-end. (TELNET's
do/dont/will/wont model comes to mind)
3. Publish "HTTP/2.0 Transport primitives" with the above definitions
4. Draw a red line through the HTTP/1.1bis documents, to separate
transport from semantics.
5. Publish "HTTP/2.0 semantics" With the lefthand side of the red line.
Possibly only as a document which "blackens out" the transport
parts of HTTP/1.1bis by cross reference.
6. Create a HTTP/2.0 transport protocol registry.
7. Publish "HTTP/2.0 basic transport" which righthand side of the red line.
This is the HTTP/1.1 style HTTP/2.0 transport, which SHALL be
very easy to implement for any working HTTP/1.1 code base.
This doc also defines how one upgrades a HTTP/1.1 TCP connection to
any TCP based HTTP/2.0 transport protocol from the transport registry.
6. Publish "HTTP/pre2 vs. HTTP/2.0 interoperability" which defines;
a) how to move/map HTTP/1.1 content to HTTP/2.0 transports
b) how to move/map HTTP/2.0 content to HTTP/1.1 transports
7. Open the floodgates to standardizing other transport protocols.
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
Received on Friday, 10 February 2012 09:10:55 UTC