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