0

Gzip を使用して、Amazon CloudFront からいくつかの JS および CSS ファイルを提供しようとしています。彼らの指示に従って、ページをレンダリングするときにクライアントが Gzip をサポートしているかどうかを判断することになっているようです。サポートしている場合は、ファイル URL に .gz を追加します。

問題は、ブラウザのリクエストを検査すると、JS または CSS ファイルのリクエストには Accepts-Encoding:gzip (または deflate) ヘッダーが追加されているように見えますが、HTML ファイルには追加されていないようです。HTML リクエストは、ヘッダーを読み取る必要がある場所です。JS または CSS リクエストは、サーバーではなく CloudFront に送られます。

では、HTML リクエストの Accept-Encoding に/が表示された場合、クライアントが gzip をサポートしていると想定しても安全でしょうか?

4

2 に答える 2

1

ではない正確に。クライアントが「私は何でも受け入れる」と主張している間*/*に、私は今日の午後、地球上の何も受け入れない新しいエンコーディングを発明し、「何でも」受け入れるブラウザがそれを処理できないのを見ることができました. ((content-type) Accept ヘッダーの場合、ブラウザは常にファイルを保存できるため、/の方が理にかなっています)。

とはいえ、 gzip エンコーディングのサポートは非​​常に広く行われているため、gzip エンコーディング受け入れる (または "何でも" 受け入れる) と主張するすべてのクライアントがサポートすると想定しても問題ありません。

于 2014-08-10T16:02:38.897 に答える
1

RFC 2616 のセクション 14.1 によると、アスタリスク「*」文字はメディア タイプを範囲にグループ化するために使用され、「*/*」はすべてのメディア タイプを示します.....

これについて詳しくは、http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlをご覧ください。

つまりAccept-Encoding: */*、すべてのメディア タイプが受け入れられ、Accept-Encoding: gzipgzip 圧縮が受け入れられることを意味します。

于 2014-08-10T15:51:58.230 に答える