为什么 IIS 7.5 将某些请求视为 HTTP/1.0?

为什么 IIS 7.5 将某些请求视为 HTTP/1.0?

当我们尝试找出为什么静态文件压缩无法在我们的一台 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 请求,而同一位置的其他服务器却没有?

答案1

这是因为旧的代理服务器将 http 1.1 转换为 http 1.0。禁用 NO_COMPRESSION_10。请参阅需要有关一些 IIS7 web.config 压缩设置的帮助

相关内容