durusmail: quixote-users: Pipelining the async HTTP server
async HTTP server included?
2004-01-06
2004-01-06
Re: async HTTP server included?
2004-01-06
2004-01-06
async HTTP server included?
2004-01-06
Re: async HTTP server included?
2004-01-06
async HTTP server included?
2004-01-07
Re: async HTTP server included?
2004-01-07
2004-01-07
2004-01-07
2004-01-07
Re: Licensing
2004-01-07
2004-01-07
2004-01-07
Pipelining the async HTTP server
2004-01-07
Re: Pipelining the async HTTP server
2004-01-07
2004-01-07
2004-01-08
Re: Pipelining the async HTTP server
2004-01-08
2004-01-08
2004-01-08
2004-01-08
quixote.server.medusa (Re: Pipelining the async HTTP server)
2004-01-08
quixote.server.medusa
2004-01-08
2004-01-12
Re: quixote.server.medusa (Re: Pipelining the async HTTP server)
2004-01-13
Problem with using quixote.server.medusa vs. standalone medusa
2004-01-14
Re: Problem with using quixote.server.medusa vs. standalone medusa
2004-01-14
Resolved! Was Re: [Quixote-users] Re: Problem with using quixote.server.medusa vs. standalone medusa
2004-01-14
Re: Resolved! Was Re: Re: Problem with using quixote.server.medusa vs. standalone medusa
2004-01-14
Pipelining the async HTTP server
2004-01-08
2004-01-08
Re: Pipelining the async HTTP server
2004-01-08
2004-01-08
2004-01-06
Re: async HTTP server included?
2004-01-06
Pipelining the async HTTP server
Etienne Posthumus
2004-01-07
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
----------------------------


reply