- From: Rich Connamacher <phantom@baymoo.sfsu.edu>
- Date: Mon, 27 May 1996 01:40:43 -0700 (PDT)
- To: Alex Hopmann <hopmann@holonet.net>
- Cc: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
> While I agree strongly with the objectives of this proposal (The
> importance of a mechanism for returning multiple requests out of
> order), I think this is entirely the wrong approach to achive that
> goal- It makes alot more sense to pursue a multiplexing layer
> underneath HTTP such as the various multiplexing/SCP proposals that
> are variously being worked on by Simon Spero, Jim Gettes, and myself.
> I believe I would not be inaccurate in saying that many members of
> this group consider this one of our most important tasks to tackle
> _after_ the completion of the HTTP/1.1 proposal.
Agreed, I realized that it most likely wouldn't be integrated in HTTP
1.1, since it's much more than a clairity-based change. Perhaps I should
have waited until after HTTP 1.1 is finished to post this, so I apologize
for my timing. I considered my approach to be a very simple one that
would be very easy to impliment, although not optimal.
> Furthermore, allow me to put forth a more direct critque of the
> suggestion:
> Chunked encoding takes place in the entity-body. HTTP responses are
> useless without their response-headers, and response-headers which are
> further down the pipeline cannot be conveyed easily within chunked
> encoding. Furthermore use of chunked encoding in this would could add
> quite a bit of additional complexity to client (and to some degree
> server) implementations as they will have to be able to simultaneously
> receive multiple responses from a single HTTP entity-body. By placing
> a multiplexing layer _under_ HTTP, each HTTP protocol element can act
> as if it has its own virtual channel, with a different multiplexing
> layer dealing with the multiplexed transport.
Agreed, a layer beneath HTTP would probably be a better approach. I
suggested this because something like this would take only a minimal
reprogramming of our server to fully support (and probably most others), and
clients would require less. Just to clarify, though, I'll show what I
meant by mixing up headers and entities, since they're not really mixed
up.
Since this is a little off the subject of the list right now, feel free
to toss it in the back of your mail folder and worry about it later.
Client: GET /foo HTTP/1.1
Client: <header blab>
Client:
Client: GET /bar HTTP/1.1
Client: <header blab>
Client:
Server: HTTP/1.1 200 OK <-- Answer to first request.
Server: <header blab>
Server: Content-type: text/plain
Server: Transfer-encoding: chunked id=0
Server:
Server: 17
Server: This is a line.
Server: This is another.
Server: ! <-- transfer paused, client now ready for either the
next response or a resumed transfer.
Server: HTTP/1.1 200 OK <-- It was the next response...
Server: <header blab>
Server: Context-type: image/gif
Server: Transfer-encoding: chunked id=1
Server:
Server: ! <-- Whoa, this'll take a while, better pause it
and send something else in the meantime...
Server: [id=0] <-- Okay, it's a resumed transfer of response id 0
(the first one)
Server: E
Server: The end. Bye.
Server: 0 <-- Ended, the client waits for what's next...
Server: [id=1] <-- Okay, the server wants to send that gif now.
Server: 1AF
Server: <a 432 byte gif>
Server: 0
[server closes connection]
Richard Connamacher
Received on Monday, 27 May 1996 01:41:00 UTC