[Python-bugs-list] [ python-Bugs-405939 ] HTTPConnection Host hdr wrong w/ proxy
nobody
nobody@sourceforge.net
Sun, 04 Mar 2001 21:44:44 -0800
Bugs #405939, was updated on 2001-03-04 21:44
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=405939&group_id=5470
Category: Python Library
Group: None
Status: Open
Priority: 5
Submitted By: Ernie Sasaki
Assigned to: Nobody/Anonymous
Summary: HTTPConnection Host hdr wrong w/ proxy
Initial Comment:
The HTTPConnection class' putrequest() method is
incorrect if self._http_vsn == 11 and a proxy is in
use.
Currently the following is done in httplib.py revision
1.33:
if self.port == HTTP_PORT:
self.putheader('Host', self.host)
else:
self.putheader('Host', "%s:%s" % (self.host,
self.port))
However if a proxy is in use, self.host is the proxy
address, and url contains the "realhost" which should
be in the Host header. (urllib does the right thing
here but it uses the HTTP class and not
HTTPConnection. It doesn't see this problem because
then HTTP/1.0 is used and no Host header is sent
automatically.)
Instead the following is correct:
match = httpRE.search(url)
if match:
self.putheader('Host', match.group(1))
else:
if self.port == HTTP_PORT:
self.putheader('Host', self.host)
else:
self.putheader('Host', "%s:%s" % (self.host,
self.port))
where:
httpRE = re.compile(r'(?i)http://([^/]+)')
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=405939&group_id=5470