我不完全确定这是否属于 SO,但我不知道还有什么要问的。
当我检查我的网络应用程序的加载速度时,我注意到显然没有 HTTP 响应(无论是什么类型 - html、css、js)是 gzip/deflate 压缩的。也就是说,任何请求中都没有像“Content-Encoding: gzip”这样的响应头,并且浏览器报告资源没有被压缩。
- 在多个浏览器(IE10、FF 17、Chrome 23、Opera 12.10、Safari 5.x)中测试和确认
- 在运行 Windows 8 Pro 的两台机器上测试并确认
- 使用 Fiddler 仔细检查 - 响应未压缩且不包含内容编码标头
- 这不仅发生在我的网络应用程序中,我测试的其他网站似乎都没有发送压缩响应(根据浏览器)
- 在 Windows 7 上,响应到达压缩并带有所有标头
- HTTPS 响应被压缩
这是响应标头的示例(请注意缺少内容编码标头):
我还检查了服务器端。服务器正在运行 Windows Server 2008 R2/IIS 7.5。我使用失败的请求跟踪来找出服务器正在发送的内容。资源似乎被压缩:
此外,服务器似乎发送了正确的标头:
我的结论是:一定是 Windows 8 介入了这里。显然它修改了 HTTP 响应。我假设 Windows 8 正在接收压缩响应,将其解压缩,删除内容编码标头并将修改后的响应进一步传递到管道中。
现在我的问题:
- 任何人都可以确认 Windows 8 修改了 HTTP 响应并且它按照我描述的方式工作吗?
- 有没有办法监控甚至禁用这种行为?
提前感谢您的回答。
问候, 安德烈
更新:我使用 Wireshark 查看到达客户端的内容。正如我所料,资源被压缩并且内容编码标头仍然存在。下图显示了 wireshark 协议,右下角显示了 Chrome 收到的响应。
这证实了我的假设,即 Windows 8 正在干预。