在响应头内容编码:gzip存在,但在请求头中接受编码:gzip,缺少deflate

时间:2014-11-21 12:17:47

标签: c# asp.net iis-8

在请求标头中接受编码:gzip,deflate,缺失,但在响应头中内容编码:存在gzip。它会导致压缩失败吗?如果是的话,该如何避免呢?

请求网址:http://something.com/something.js

请求方法:GET

状态代码:200 OK 200 OK

请求标题

Accept:  */*
Referer:  somthing.comsomthing.aspx
User-Agent:  Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
X-DevTools-Emulate-Network-Conditions-Client-Id:  2D3ED9B5-95BD-4984-9EEE-405C2889F11E

响应标头

Accept-Ranges:  bytes
Content-Encoding:  gzip
Content-Length:  884
Content-Type:  application/x-javascript
Date:  Tue, 28 Oct 2014 11:09:13 GMT
ETag:  "0ac99ce3e9fcf1:0"
Last-Modified:  Mon, 14 Jul 2014 08:37:12 GMT
Server:  Microsoft-IIS/8.0
Vary:  Accept-Encoding
X-Powered-By:  ASP.NET

1 个答案:

答案 0 :(得分:1)

来自RFC 7231

  

没有Accept-Encoding标头字段的请求意味着   用户代理没有关于内容编码的偏好。虽然   这允许服务器在响应中使用任何内容编码   并不意味着用户代理能够正确处理   所有编码。

简而言之:如果您未指定Accept-Encoding,则服务器向您发送压缩内容是合法的(尽管不明智)。对于告诉Web服务器它绝对不应该压缩,似乎不是一种可靠,可靠的方法。您可以尝试使用Accept-Encoding: *;q=0Accept-Encoding: identity,但对此服务的支持在网络服务器上并不普遍,代理服务器也可以解决问题。

最后,如果简单地处理压缩内容,你可能会更好一点 - 没有充分的理由让客户端不支持压缩,而且库可以免费提供。