ほとんどのWebサイトは、ロゴ画像などの静的アセットmax-age=31536000
のCache-control
ヘッダーを設定します(1年)。例:
ただし、注目すべき例外があります。Googleのロゴにはmax-age=691200
8日間あります。
私は過去にGoogleロゴのヘッダーを確認しましたが、以前は間違いなく1年でした。(また、以前はスプライトの一部でしたが、現在はスタンドアロンのロゴ画像ですが、おそらく別の質問です...)
キャッシュの有効期間をわずか8日間に減らしたいと思う正当な技術的理由は何でしょうか?Googleのホームページは、世界で最も慎重に最適化されたページの1つなので、正当な理由があると思います。
編集:
回答する前に、これらの点を理解しておいてください。
max-age
静的アセットを将来変更できるようにするために、短いライフタイムを使用する人はいません。変更する場合は、別のURLで提供するだけです。いいえ、Google Doodleとは関係ありません。考えてみてください。GoogleがこのHTTPの基本的なトリックを理解していなかったとしても、元のロゴがキャッシュされていないユーザーだけがdoodle-dayにDoodleを目にするため、8日間は適切ではありません。そのユーザーグループは、GoogleがDoodleを変更してから8日間、Doodleを見続けていました:)Webサーバーはクライアント(またはプロキシ)のキャッシュを「いっぱいにする」ことを心配していません。クライアントは自分でこれを管理します。自身のストレージ制限に達すると、優先度が最も低いアイテムをドロップし始め、新しいアイテムのためのスペースを作ります。優先度スコアは、「このURLをキャッシュしたことによるメリットはどれくらいありますか?」という質問に基づいています。これは
max-age
、URLが最初に要求されたときにサーバーが送信した値とは関係ありません。これは、「頻度」に基づくヒューリスティックです。そのURLに対するリクエストの数です。max-age
単にサーバーがカットオフポイントを設定できるようにします。これは、アイテムが再利用される頻度に関係なく、クライアントがアイテムを破棄することになっている時間です。ダウンストリームのクライアント/プロキシがキャッシュをいっぱいにするのを「控え」に頼るのは、とてもいい信頼できることですが、私たちはその世界に住んでいるとは思いません;)