1 回答
TA贡献1725条经验 获得超7个赞
Accept-Encoding: gzip仅表示客户端能够并且愿意处理 gzip 压缩内容。这并不意味着服务器必须实际压缩内容。事实上,例如对于图像,使用 gzip 压缩内容没有任何意义,因为这些已经是压缩数据(但不是使用 gzip),并且在顶部添加 gzip 可能实际上会增加有效负载的大小。
如果您希望您的服务器返回压缩内容,您实际上必须配置您的服务器来执行此操作。有关如何使用 nginx 执行此操作的示例,请参见此处。
请注意,http.Response它将透明地解压缩响应并相应地更新标头,即删除Content-Encoding。这意味着您在使用resp.Header.Get("Content-Encoding"). 如果响应被自动解压,可以在Uncompressed字段中看到:
fmt.Println("was compressed ", resp.Uncompressed)
有关更多信息,请参阅go doc http.Response:
// Uncompressed reports whether the response was sent compressed but
// was decompressed by the http package. When true, reading from
// Body yields the uncompressed content instead of the compressed
// content actually set from the server, ContentLength is set to -1,
// and the "Content-Length" and "Content-Encoding" fields are deleted
// from the responseHeader. To get the original response from
// the server, set Transport.DisableCompression to true.
Uncompressed bool
- 1 回答
- 0 关注
- 291 浏览
添加回答
举报