Python:http.server-如何发送压缩的分块响应

时间:2019-04-11 04:54:20

标签: python http

尝试构建位于“浏览器”和“ 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()

0 个答案:

没有答案