[Python-Dev] new httplib?
Greg Stein
gstein@lyra.org
Thu, 17 Feb 2000 12:01:33 -0800 (PST)
On Thu, 17 Feb 2000, Fred L. Drake, Jr. wrote:
> Greg Stein writes:
> > Pipelining is very important... it is once of the big advances in HTTP/1.1
> > (well, the advance is really the "chunked" transfer encoding which
> > *allows* pipelining to occur more often).
>
> You should be able to pipeline requests even if responses don't use
> chunking;
Not in all cases. You can pipeline only if the server sends a
Content-Length: header or uses chunking. There are a few other conditions
(look at the httplib.HTTPResponse constructor in my httplib), but the
Content-Length/chunking is the major point.
> if I parse the first HTML page while still receiving, I
> should be able to request non-cached images or other dependencies
> before the first HTML is completely received. This allows the server
> to locate the resources while still waiting for me finish pulling the
> first response off the network. It improves the possibility of
> scheduling resource location at the server (possibly important if
> there's a dynamic backend) as well as avoiding establishing new TCP
> connections.
This would be nice, but my httplib currently enforces consumption before a
new request. I do not recall the specific reasons why, but I imagine it
would be possible to change it.
[ today: you could certainly use a second connection object to improve
client response, with the corresponding impact on the server ]
> (Yes, some of this can be done with keep-alive stuff, but I don't
> know that httplib supports that at all.)
My httplib deals with the keep-alive header, when applicable (you are
supposed to use Connection: in HTTP/1.1; it only looks at keep-alive if
you aren't using 1.1).
Cheers,
-g
--
Greg Stein, http://www.lyra.org/