iOS 6.1 Safari没有设置Accept-Encoding

问题描述:

我的测试用例只是添加到头部的HTML脚本标记,但基本上iOS Safari上的每个HTTP请求都没有设置Accept-Encoding标头。iOS 6.1 Safari没有设置Accept-Encoding

我使用Paros跟踪了HTTP请求,并验证了请求确实发送到我们的Nginx服务器并带有下面的标头。

HTTP请求:

GET http://www.website.com/8EF47773B9E25308C1F124FF701E607A.cache.js HTTP/1.1 
Host: www.website.com 
Referer: http://www.website.com 
Proxy-Connection: keep-alive 
Accept: */* 
Accept-Language: en-us 
Connection: keep-alive 
User-Agent: Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B141 

HTTP响应:

HTTP/1.1 200 OK 
Accept-Ranges: bytes 
Cache-Control: max-age=2592000 
Cache-Control: private 
Content-Type: application/x-javascript 
Date: Tue, 26 Feb 2013 22:56:39 GMT 
Expires: Thu, 28 Mar 2013 22:56:39 GMT 
Last-Modified: Mon, 25 Feb 2013 17:54:27 GMT 
Server: nginx/1.2.3 
Content-Length: 1042909 
Connection: keep-alive 

仅仅加入 “的Accept-Encoding:gzip的,放气” 与上述(使用卷曲)完全相同的请求头会回来用一个gzip的回应。

这也只发生在设备上;使用iOS模拟器将添加适当的Accept-Encoding标头。

这是iOS Safari的预期行为吗?我已经在网上搜索了更多关于这方面的信息,结果很少。

+0

该代理可能会干扰事物。你能不能重新测试? – duskwuff 2013-02-27 02:07:15

+0

是的,自然30分钟后,我发现Paros代理抛出所有Accept-Encoding标头。用CharlesProxy验证它确定,一切工作正常。多浪费时间! – 2013-02-27 02:30:22

Paros代理抛出所有Accept-Encoding标头。