2
我的測試用例只是添加到頭部的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的預期行爲嗎?我已經在網上搜索了更多關於這方面的信息,結果很少。
該代理可能會干擾事物。你能不能重新測試? – duskwuff 2013-02-27 02:07:15
是的,自然30分鐘後,我發現Paros代理拋出所有Accept-Encoding標頭。用CharlesProxy驗證它確定,一切工作正常。多浪費時間! – 2013-02-27 02:30:22