W3C home > Mailing lists > Public > www-lib@w3.org > July to September 2003

Re: how pipeline works

From: Richard Atterer <richard@list03.atterer.net>
Date: Sat, 6 Sep 2003 14:30:26 +0200
To: www-lib@w3.org
Message-ID: <20030906123026.GA1008@nenya.lan>

On Fri, Sep 05, 2003 at 10:49:26AM -0700, Jerry G. Chiuan wrote:
> - By using pipeline, does client need only one TCP connection? ( all
> requests go through the same connection )


> - If yes, how does it guatantee the sequence of consecutive responses? e.g.
> server takes longer time to deal with 1st request, but shorter time for 2nd
> request. The server would hold 2nd response until 1st response is generated
> then send them both sequentially back to client, or the server just sends
> back directly no matter which response is ready

The server will need to maintain a queue of pending requests. Any new 
requests get added to the end of the queue, and whenever a file has been 
sent out, the next request is taken from the front of the queue.

RFC 2068 (HTTP/1.1) says the following: Pipelining

   A client that supports persistent connections MAY "pipeline" its
   requests (i.e., send multiple requests without waiting for each
   response). A server MUST send its responses to those requests in the
   same order that the requests were received.

> - for doing that, we at least need 2 threads, one is for sending requests,
> another is for receiving reponses, don't we?

That's one way to implement it - I guess it would also be enough if the
server checked for new requests at regular intervals, e.g. after every x kB
of sent data. I have no idea how Apache implements it.



  __   _
  |_) /|  Richard Atterer     |  GnuPG key:
  | \/|  http://atterer.net  |  0x888354F7
Received on Saturday, 6 September 2003 12:39:06 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:33:56 UTC