From a6458b056f85c4b9a9d7e28fbdce76dfddd8d5bc Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Mon, 27 Jan 2014 22:05:49 -0800 Subject: [PATCH] some tweaks on transfer-encoding: always remove and serve unchunked (should allow front-end serve can rechunk as needed) --- pywb/header_rewriter.py | 15 +++++++++++---- pywb/replay.py | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/pywb/header_rewriter.py b/pywb/header_rewriter.py index 322046c6..5e4a70e2 100644 --- a/pywb/header_rewriter.py +++ b/pywb/header_rewriter.py @@ -36,6 +36,9 @@ class HeaderRewriter: {'status_headers': StatusAndHeaders(protocol = '', statusline = '200 OK', headers = [ ('Content-Length', '200000'), ('Content-Type', 'image/png'), ('X-Archive-Orig-Cookie', 'blah'), + ('Content-Encoding', 'gzip')]), 'charset': None, 'textType': None, 'removedHeaderDict': {'transfer-encoding': 'chunked'}} + + Removing Transfer-Encoding always, Was: ('Content-Encoding', 'gzip'), ('Transfer-Encoding', 'chunked')]), 'charset': None, 'textType': None, 'removedHeaderDict': {}} @@ -50,13 +53,15 @@ class HeaderRewriter: } - PROXY_HEADERS = ('content-type', 'content-disposition') + PROXY_HEADERS = ['content-type', 'content-disposition'] - URL_REWRITE_HEADERS = ('location', 'content-location', 'content-base') + URL_REWRITE_HEADERS = ['location', 'content-location', 'content-base'] - ENCODING_HEADERS = ('content-encoding', 'transfer-encoding') + ENCODING_HEADERS = ['content-encoding'] - PROXY_NO_REWRITE_HEADERS = ('content-length') + REMOVE_HEADERS = ['transfer-encoding'] + + PROXY_NO_REWRITE_HEADERS = ['content-length'] def __init__(self, headerPrefix = 'X-Archive-Orig-'): self.headerPrefix = headerPrefix @@ -108,6 +113,8 @@ class HeaderRewriter: removedHeaderDict[lowername] = value else: newHeaders.append((name, value)) + elif lowername in self.REMOVE_HEADERS: + removedHeaderDict[lowername] = value elif lowername in self.PROXY_NO_REWRITE_HEADERS and not contentRewritten: newHeaders.append((name, value)) else: diff --git a/pywb/replay.py b/pywb/replay.py index 7b69f610..303a5735 100644 --- a/pywb/replay.py +++ b/pywb/replay.py @@ -292,7 +292,7 @@ class RewritingReplayHandler(ReplayHandler): if rewrittenHeaders.textType is None: response.status_headers = rewrittenHeaders.status_headers - if fix_chunk: + if de_chunk: response.body = self.create_stream_gen(stream) return response