- From: Richard Atterer <richard@list03.atterer.net>
- Date: Sat, 6 Sep 2003 14:30:26 +0200
- To: www-lib@w3.org
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 ) Yes! > - 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: 8.1.2.2 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. Cheers, Richard -- __ _ |_) /| Richard Atterer | GnuPG key: | \/¯| http://atterer.net | 0x888354F7 ¯ '` ¯
Received on Saturday, 6 September 2003 12:39:06 UTC