On Wed, 7 Jan 2004, Graham Fawcett wrote: > It turns out that his code is HTTP/1.0 only (should have realized that, > since he based it on BaseHTTPRequestHandler which is explicitly > HTTP/1.0). This is unfortunate for a number of reasons, but the largest > that comes to mind is the lack of pipelining (Keep-Alive). Pipelining > is critical, IMO -- not for a one-seat demo server, of course; but for > any real use, the lack of pipelining is going to be a performance hit. Disclaimer: Other experts please jump in and correct me if wrong, but; Note, pipelining != keep-alive. It is two different things. Keep-alive used to be a directive in HTTP 0.9 days to specify that the TCP connection should not be closed between requests. That specific directive has been deprecated and now in HTTP 1.1, that behaviour is the default. IOW, all connections stay open by default, but either side can close the connection with no warning for whatever reason. Pipelining is something else altogether. It means sending multiple requests even if the reponses for the first request has not been received. It is also known as 'boxcarring' for the metaphor of sticking your requests together like in a roller-coaster and sending them off, even if the first request (car... :-) hasn't completed a circuit of the roller coaster yet. Pipelining is much rarer and difficult to get right than keeping the TCP connection alive. (which Medusa does just fine) gr. --- Etienne Posthumus Programmer, IIDS - Intelligent Interactive Distributed Systems http://www.iids.org/ Vrije Universiteit Amsterdam ----------------------------