据说Transport会自动处理Content-Encoding (就像从resp.Body读取时自动解压一样)。
也有人说,Content-Encoding是端到端的HTTP头,而不是逐跳的。
因此,如果某个proxy将Content-Encoding复制回客户端的响应头,并且该proxy还会对上游响应体进行io.Copy (由于io.Copy会从resp.Body中读取,所以可能会自动解压),会不会与客户端不一致?(从上游响应复制的Content-Encoding,但body已经解压)
发布于 2016-09-09 10:17:15
通常,代理不应更改Content-Encoding响应头。
相同URI的不同编码被认为是不同的表示,并且具有不同的ETags。因此,更改Content-Encoding并不能很好地处理缓存。
但是如果在你自己的生态系统中是你自己的代理和客户端,你可以这样做,因为你知道发生了什么,所以如果你的代理正在将数据解压缩回客户端,你需要去掉Content-Encoding头。
https://stackoverflow.com/questions/39367100
复制相似问题