Python3 解压 HTTP 压缩数据
Web 压缩常见方式有 gzip,deflate 等。而 Brotli 是一种由 Google 开发的全新压缩算法,可以有效减小传输内容大小,加速分发效果。
当客户端的请求携带请求头 Accept-Encoding: br
时,表示客户端希望获取对应资源时进行 Brotli 压缩。当服务端响应携带响应头 Content-Encoding: br
时,表示服务端响应的内容是 Brotli 压缩的资源。需要注意的是,只有在 HTTPS 的情况下,浏览器才会发送 br
这个 Accept-Encoding
。目前,知乎已经启用了 Brotli 压缩。
当我们使用 Python 获取 request 数据时,如果 response 使用了压缩,必须解压才能正常阅读显示,不然就会出现“乱码”。以下简单说明在 Python 中如何解压 gzip HTTP 压缩数据,和如何解压最新的 Brotli(br)HTTP 压缩数据。
Python3 解压 gzip HTTP 压缩数据
当 response 的 headers 中的 Content-Encoding