尝试构建位于“浏览器”和“ HTTP服务器”之间的代理服务器,并增强“ HTTP服务器”的某些响应。
有关如何将从“ HTTP服务器”接收到的压缩原始内容按原样中继到浏览器的详细指南,当前代理服务器使用“ http.server + BaseHTTPRequestHandler”,它似乎可以解压缩内容。
代理服务器代码
class MyServer(BaseHTTPRequestHandler):
def do_GET(self):
r = requests.get("http://httpserver.net"+self.path,headers=self.headers,stream=True)
self.protocol_version = 'HTTP/1.1'
self.close_connection = True
self.send_response(r.status_code)
for k in r.headers:
self.send_header(k,r.headers[k])
self.end_headers()
if ("transfer-encoding" in r.headers):
print("transfer encoding enable")
for chunk in r.iter_content(chunk_size=1024):
self.wfile.write(chunk)
else:
self.wfile.write(r.content)
self.finish
self.connection.close()