为什么 IIS 6 中的 gzip 压缩对某些客户端不起作用?

为什么 IIS 6 中的 gzip 压缩对某些客户端不起作用?

我最近在 IIS6 中启用了压缩功能,但似乎某些用户可以使用,而其他用户则不行。我已使用 Fiddler 和 Firebug 验证了此功能对我有效。

例如,我的日志文件中有一个特定的静态文件,其“sc-bytes”分别为 2,223、7,272 和 7,296。最大的文件大小是未压缩的大小。

以下是一些示例用户代理和状态 200 请求的文件大小:

字节:2,223

  • Mozilla/4.0+(兼容;+MSIE+6.0;+Windows+NT+5.0;+.NET+CLR+2.0.50727)

字节:7,296

  • Mozilla/4.0+(兼容;+MSIE+6.0;+Windows+NT+5.0;+.NET+CLR+2.0.50727)
  • Mozilla/4.0+(兼容;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.30)

我该怎么做才能开始排除故障/解决这个问题?这是我能控制的吗?

如果有所不同,则 Web Gardens 已启用。

答案1

一些较旧的浏览器无法正确处理压缩内容,因此默认服务器设置会尝试检测这些内容(来自代理字符串),如果检测到这样的客户端,则拒绝发送压缩内容。

此外,浏览器(或其他 HTTP 客户端)需要在其发送的请求中标识自己接受压缩内容 - 如果accepts-*请求中不存在相关标头,则响应将不会被压缩。这不是您可以控制服务器端的事情。如果用户通过不传递相关标头的代理运行,他们可能也无法控制它。

不过,如果实际文件大小是 7296,我不确定为什么你会看到一些 7272 字节的请求。这种情况发生了多少次?如果只发生过一次,那么很可能只是一个随机错误,你永远无法弄清楚原因。如果这种情况经常发生,那么就值得进行更详细的调查。

相关内容