web-dev-qa-db-ja.com

Pingdomが「Vary:Accept-Encoding」ヘッダーの追加を提案するのはなぜですか?

Webサイトの速度を測定するツールを試しました。それはPingdomです https://tools.pingdom.com

私が理解していない答えがあります「次の公的にキャッシュ可能な圧縮可能なリソースには「Vary:Accept-Encoding」ヘッダーが必要です: https://www.example.com/ "

誰でもそれを簡単な方法で説明でき、どのように改善できますか?

それがファイルの圧縮方法に関連していることを理解している場合。私のサーバーはGzipを受け入れません。 deflateでうまく機能します。そのコードを.htaccessに入れます:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Googleのページ速度に適しています。しかし、Pingdomはまだエラーを出しているようです。

2
Nrc

それは何ですか?

Vary HTTP応答ヘッダーは、クライアントが言及された要求ヘッダーのいずれかを変更した場合にサーバーの応答が変化する可能性があることをユーザーエージェント(クライアント)に伝えます。

Vary: Accept-Encoding

これは、ブラウザーがAccept-Encoding要求ヘッダーで異なる値を送信した場合、サーバーが異なる応答を送信する可能性があることを意味します。
(Accept-Encodingヘッダーは、ブラウザーがサポートする圧縮アルゴリズムを示していることに注意する必要があります。文字エンコードはHTTPでは文字セットと呼ばれます。)


ヘッダーが必要になる理由は、ユーザーエージェント(ブラウザー)とサーバーの間にキャッシュがある可能性があり、そのキャッシュは同じページが異なるユーザーエージェントに対して異なるコンテンツを持つことができることを知る必要があるためです。サーバーがVaryヘッダーを送信しなかった場合、中間キャッシュはページの「奇妙な」バリアントをキャッシュし、すべての人に提供できます。例:

  • 「モバイルページ」をデスクトップに送信します。

  • 一般的でない/サポートされていない圧縮方法で圧縮されたページを送信します。

  • 話さない言語でページを送信します。

Varyヘッダーの送信に失敗すると、中間キャッシュがサイトを台無しにする可能性があります。


一般的なその他のヘッダーの例Varyヘッダーに記載されています:

  • ユーザーエージェント:同じURLで別々のモバイルページとデスクトップページを提供するサイトで一般的に使用されます。 (Googleを含む一部の検索エンジンでは、この方法を使用する場合はVaryヘッダーを使用する必要があります。)

  • Accept-Language:国際化されたサイトは、ブラウザから送信されたAccept-Headerを使用できます。


改善方法?

正直に言うと、これは最も重要なVaryヘッダーではありません。ほとんどのブラウザはgzipをサポートしているため、実際に実装する必要はほとんどありません。

しかし、私はそうは言いません。私はこれらの種類の事柄につまらないことを好むので、これをご覧になることをお勧めします Stackoverflowでの実装方法を尋ねる質問

3
Oskar Skog

「Vary:Accept-encoding」を使用する主な理由の1つは、Oskarが述べたように、ブラウザーの能力に基づいてコンテンツを配信できるようにすることです。

「Accept-encoding」は、プロキシ(ミドルマンサーバー)がページの複数の圧縮バージョンをプロキシにキャッシュできることを正しく理解できるようにするため、「Vary」ヘッダーの特に重要なパラメーターです。したがって、Webページは圧縮をサポートする新しいブラウザでは高速にロードされ、圧縮をサポートしない古いブラウザでは非圧縮です。

このURLは、変化が非常に重要である理由を非常によく説明しており、それを使用することでお金を節約できることを示しています。

https://www.fastly.com/blog/best-practices-using-vary-header/

1
Mike