Martin Panter added the comment:
HTTP pipelining is not supported in general. According to the module doc
string, you can actually pipeline a second request if you have read the first
response’s headers but not its body:
>>> conn = HTTPSConnection("bugs.python.org")
>>> conn.request("GET", "/")
>>> response1 = conn.getresponse() # Read header section only
>>> conn.request("GET", "/issue23377")
>>> response1.read()[:100] # Read first body after pipelining second request
b'<!--\n This is the default body that is displayed when people visit the\n
tracker. The tag below lists'
>>> response2 = conn.getresponse()
>>> response2.read()[:100]
b'\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xht'
But I suspect this might deadlock with some servers (that don’t properly
support pipelining themselves) if the second request was a large POST or
something and filled up the buffers that this mode relies on.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue23377>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com