suppress SPDY/HTTP2 announcement headers, fix #277

This commit is contained in:
Maximilian Hils 2014-08-03 16:25:38 +02:00
parent 8f9395060f
commit 13f030ccb5
3 changed files with 12 additions and 23 deletions

View File

@ -320,15 +320,13 @@ class HTTPRequest(HTTPMessage):
def _assemble_headers(self):
headers = self.headers.copy()
utils.del_all(
headers,
[
'Proxy-Connection',
'Keep-Alive',
'Connection',
'Transfer-Encoding'
]
)
for k in ['Proxy-Connection',
'Keep-Alive',
'Connection',
'Transfer-Encoding']:
del headers[k]
if headers["Upgrade"] == ["h2c"]: # Suppress HTTP2 https://http2.github.io/http2-spec/index.html#discover-http
del headers["Upgrade"]
if not 'host' in headers:
headers["Host"] = [utils.hostport(self.scheme,
self.host or self.flow.server_conn.address.host,
@ -636,9 +634,12 @@ class HTTPResponse(HTTPMessage):
def _assemble_headers(self, preserve_transfer_encoding=False):
headers = self.headers.copy()
utils.del_all(headers, ['Proxy-Connection'])
for k in ['Proxy-Connection',
'Alternate-Protocol',
'Alt-Svc']:
del headers[k]
if not preserve_transfer_encoding:
utils.del_all(headers, ['Transfer-Encoding'])
del headers['Transfer-Encoding']
if self.content:
headers["Content-Length"] = [str(len(self.content))]

View File

@ -64,12 +64,6 @@ def urlencode(s):
return urllib.urlencode(s, False)
def del_all(dict, keys):
for key in keys:
if key in dict:
del dict[key]
def pretty_size(size):
suffixes = [
("B", 2**10),

View File

@ -22,12 +22,6 @@ def test_isXml():
assert utils.isXML(" \n<foo")
def test_del_all():
d = dict(a=1, b=2, c=3)
utils.del_all(d, ["a", "x", "b"])
assert d.keys() == ["c"]
def test_clean_hanging_newline():
s = "foo\n"
assert utils.clean_hanging_newline(s) == "foo"