iOS 6.1 Safari未设置Accept-Encoding

时间:2013-02-27 02:03:50

标签: ios http safari nginx http-headers

我的测试用例只是添加到头部的HTML脚本标记,但基本上iOS Safari上的每个HTTP请求都没有设置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

仅使用上面完全相同的请求标题(使用Curl)添加“Accept-Encoding:gzip,deflate”将返回一个gzip压缩响应。

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

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

1 个答案:

答案 0 :(得分:0)

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