2017-05-08 2 views
8

クラウドフロントのCDNにリクエストしていて、非常にイライラしています。 chromeとfirefoxでは、要求が適切なaccept-encoding:gzip, deflateヘッダーを渡しました。Safariがaccept-encodingを渡していません:gzip、deflate

ただし、safariはこれを実行せず、したがってファイルの非圧縮バージョンを取得します。これは、HTML文書内の単純なスクリプトタグです。だから私はヘッダーを設定することはできません。

同じドキュメントは、次のヘッダー/ブラウザコンボで

Safariのヘッダを要求を生成

-H 'のCache-Control:最大エージング= 0' \ -H「の場合、変更されました-since:月、2017年5月8日 ' \' 午前18時01分40秒GMT

クロームヘッダ

:方法:パス: をGET /main-b54b8739d65dfbd36152.js :スキーム:HTTPS 受け入れる:/ 受け入れるエンコーディング:GZIPは、収縮、SDCH、BR 受け入れる言語:EN-US ENを、。 Q = 0.8 キャッシュ制御:キャッシュなし プラグマ:

またノーキャッシュは、それぞれのウェブ検査官は、サファリでは、追加の情報を提供し

とChromeでSafari Screen shotenter image description here

さらに、リクエストはサファリで3倍長くなります。おおよそクロムで55ミリ秒、サファリで150ミリ秒。

私はプライバシーを守るためにいくつかの情報を残しました。助けてくれてありがとう!

+0

Safariはリクエストでこのヘッダーを送信しないにもかかわらず、ほとんどのサーバーでgzipでエンコードされたコンテンツが提供されているとは言えますが、それは今日の標準だからです。私はこれを確認したばかりですが、要求に 'accept-encoding'ヘッダーがなくても、' content-encoding:gzip'で返信します。しかし、サーバーが圧縮を使用できないようにする多くの状況があります。また、Safariの開発ツールを信用して、サイズを報告することはできません。 (それはちょうど漠然とした兆候なのでコメントとして、よく研究された答えではない)。基本的には本当ですか? :) –

+0

@HuguesMoreau私はいくつかの追加の詳細を追加し、これ以上の情報を提供して満足しています。 – dandlezzz

+0

私は問題が圧縮だとは思わない。あなたが見なければならないのは圧縮です:はい。つまり、転送に圧縮が使用されました。しかし、Safariでは圧縮率とサイズが壊れているようだ。そしてリクエストヘッダーさえも間違っているように見えます。 Appleの防衛には、以前は圧縮をデバッグするのに苦労していましたが、すべてのブラウザが圧縮の使い方を間違って報告していました。しかし、それはあまり役に立たない。サーバーを制御できる場合は、Accept-Encodingヘッダーと応答サイズをサーバー側に記録することをお勧めします(アクセスログは通常、後者で役立ちます)。 – Seva

答えて

3

Safariはデベロッパーツールで異なる命名規則を使用していますが、これはユーザーの観察と一致しています。 this answer

[1] Encoded = uncompressed filesize, from server 
[2] Decoded = uncompressed filesize, locally 
[3] Transferred = uncompressed file size + headers sent and received 
[4] Content-Length = compressed file sent, from server 

から引用すると、それが本当に圧縮されますかどうかを確認するためにcontent-lengthプロパティを確認してください。

関連する問題