Http IIS6在请求中包含Via标头时未进行gzip压缩

Http IIS6在请求中包含Via标头时未进行gzip压缩,http,iis,iis-6,gzip,http-via-header,Http,Iis,Iis 6,Gzip,Http Via Header,我有一些通过CDN的静态内容。我使用IIS6的内置压缩(gzip&deflate)处理静态内容,当我请求它时,它可以正常工作。但是,当CDN对内容发出初始请求时,不会返回压缩内容。因此,他们没有压缩内容转发给请求它的人。(是的,这引发了人们使用无法处理压缩的浏览器从CDN请求[压缩]内容的问题。-我们暂时将其放在一边) 下面是一个不带“Via”头的请求示例: HEAD /flash/swfobject.js HTTP/1.1 User-Agent: curl/7.19.7 (i386

我有一些通过CDN的静态内容。我使用IIS6的内置压缩(gzip&deflate)处理静态内容,当我请求它时,它可以正常工作。但是,当CDN对内容发出初始请求时,不会返回压缩内容。因此,他们没有压缩内容转发给请求它的人。(是的,这引发了人们使用无法处理压缩的浏览器从CDN请求[压缩]内容的问题。-我们暂时将其放在一边)

下面是一个不带“Via”头的请求示例:

HEAD /flash/swfobject.js HTTP/1.1 User-Agent: curl/7.19.7 (i386-pc-win32) Host: localhost:9120 Accept: */* Connection: Keep-Alive accept-encoding: gzip HEAD/flash/swfobject.js HTTP/1.1 用户代理:curl/7.19.7(i386-pc-win32) 主机:localhost:9120 接受:** 连接:保持活力 接受编码:gzip 它返回一个压缩响应:

HTTP/1.1 200 OK Content-Length: 4357 Content-Type: application/x-javascript Content-Encoding: gzip Expires: Wed, 01 Jan 2020 00:00:00 GMT Last-Modified: Wed, 18 Nov 2009 15:36:52 GMT Accept-Ranges: bytes Vary: Accept-Encoding Server: Microsoft-IIS/6.0 Date: Thu, 19 Nov 2009 10:27:50 GMT HTTP/1.1200ok 内容长度:4357 内容类型:应用程序/x-javascript 内容编码:gzip 过期时间:2020年1月1日星期三00:00:00 GMT 最后修改:2009年11月18日星期三15:36:52 GMT 接受范围:字节 改变:接受编码 服务器:Microsoft IIS/6.0 日期:2009年11月19日星期四10:27:50 GMT 但是,如果我在请求中包含一个“Via”头(就像CDN那样),那么结果将以未压缩的方式返回:

请求:

HEAD /flash/swfobject.js HTTP/1.1 User-Agent: curl/7.19.7 (i386-pc-win32) Host: localhost:9120 Accept: */* Connection: Keep-Alive Via: 1.1 204.160.105.17:80 (Footprint 4.5/FPMCP) accept-encoding: gzip HEAD/flash/swfobject.js HTTP/1.1 用户代理:curl/7.19.7(i386-pc-win32) 主机:localhost:9120 接受:*/* 连接:保持活力 通孔:1.1204.160.105.17:80(封装外形4.5/FPMCP) 接受编码:gzip 答复:

HTTP/1.1 200 OK Content-Length: 14602 Content-Type: application/x-javascript Expires: Wed, 01 Jan 2020 00:00:00 GMT Last-Modified: Wed, 18 Nov 2009 15:36:54 GMT Accept-Ranges: bytes Server: Microsoft-IIS/6.0 Date: Thu, 19 Nov 2009 10:29:52 GMT HTTP/1.1200ok 内容长度:14602 内容类型:应用程序/x-javascript 过期时间:2020年1月1日星期三00:00:00 GMT 最后修改:2009年11月18日星期三15:36:54 GMT 接受范围:字节 服务器:Microsoft IIS/6.0 日期:2009年11月19日星期四格林威治标准时间10:29:52 是的,这些演示在请求中使用“localhost”。不过,我使用不同网络上不同机器的实际域名得到了相同的结果

那么有两个问题:

  • 这可能是IIS由于额外的标头而未应用压缩吗?如果是这样,我能做些什么

  • 在返回内容之前,如何判断代理是否正在解压缩内容

  • 奖金问题3-我可以做些什么来进一步调查这个问题


    我知道问题332049,但答案中有标题,而不是请求。

    我自己在研究这个问题时偶然发现了你的问题。我发现了一个问题,简单的回答是,Via头用于代理,代理通常会导致压缩混乱。您可以选择删除标头,也可以更改IIS元数据库中的设置(HcNoCompressionForProxies=“FALSE”)。这两个选项我都获得了成功。

    在ServerFault()上也有人问过这一问题,但得到了不同的答案