私のテストケースは、ヘッドに追加されるHTMLスクリプトタグですが、基本的にiOSSafariのすべての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
上記とまったく同じリクエストヘッダーを使用して「Accept-Encoding:gzip、deflate」を追加するだけで(Curlを使用)、gzipで圧縮された応答が返されます。
これもデバイスでのみ発生します。iOSシミュレーターを使用すると、適切なAccept-Encodingヘッダーが追加されます。
これはiOSSafariの意図された動作ですか?私はこれについての詳細をインターネットで調べましたが、結果はほとんどありませんでした。