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的预期行为吗?我已经在网上搜索了更多关于这方面的信息,结果很少。
答
Paros代理抛出所有Accept-Encoding标头。
该代理可能会干扰事物。你能不能重新测试? – duskwuff 2013-02-27 02:07:15
是的,自然30分钟后,我发现Paros代理抛出所有Accept-Encoding标头。用CharlesProxy验证它确定,一切工作正常。多浪费时间! – 2013-02-27 02:30:22