我的测试用例只是添加到头部的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的预期行为吗?我已经在互联网上搜索了关于此的更多信息,结果很少。
答案 0 :(得分:0)
Paros代理抛出所有Accept-Encoding标头。