在尝试找出静态文件压缩为何无法在我们的 IIS 服务器之一上运行时,错误返回为“NO_COMPRESSION_10”,转换为:
服务器未配置为压缩 1.0 请求
查看 Fiddler 中的请求,我可以看到我正在请求 HTTP 1.1,但所有内容都作为 HTTP 1.0 发回:
请求(来自 chrome,通过 Fiddler 捕获):
GET /css/reset.css HTTP/1.1
Host: [-----].com
Connection: keep-alive
Cache-Control: max-age=0
If-Modified-Since: Tue, 16 Oct 2012 15:04:34 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11
Accept: text/css,*/*;q=0.1
Referer: http://[-----].com/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en;q=0.8,en-US;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
IIS 的响应:
HTTP/1.0 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 11 Dec 2012 11:57:03 GMT
Connection: close
Content-Length: 108837
与我运行此站点的主机相同的其他服务器都以HTTP/1.1
.
如何说服 IIS 使用 HTTP/1.1 而不是 HTTP/1.0 进行响应?
编辑添加:
深入挖掘,我可以看到来自服务器的一些响应确实被压缩返回,所以我想我真的想弄清楚为什么从我们办公室与这个特定服务器交谈似乎导致它看到 1.0 请求,而其他服务器在同一个 co-loc 不?
这是因为将 http 1.1 转换为 http 1.0 的旧代理服务器。禁用 NO_COMPRESSION_10。请参阅需要一些 IIS7 web.config 压缩设置的帮助