2

IIS 7.0 でホストされている大量の画像、スクリプト、CSS を含む、かなりトラフィックの多い静的サイト (つまり、サーバー コードがない) があります。

サーバーの負荷を軽減するためにキャッシングを有効にしたいと考えており、Web コンテンツの有効期限を将来のある時点に設定することを検討しています。IIS では、IIS 応答ヘッダー モジュールの一般的な http ヘッダーの「Expire Web content」セクションを介して、グローバル レベルでこれを行うことができます。おそらく、配信後 7 日で期限切れになるようにコンテンツを設定します。

これが実際に行うことは、max-ageHTTP 応答ヘッダーを設定することだけです。私が知る限り、これは理にかなっていると思います。

さて、混乱:

  1. まず、私がチェックしたすべてのブラウザー (IE9、Chrome、FF4) はこれを無視しているようで、コンテンツが変更されたかどうかを確認するためにサーバーに条件付きの要求を行います。では、max-age 応答ヘッダーが実際にどのような影響を与えるのか完全にはわかりません。古いブラウザでしょうか?それともウェブキャッシュ?

  2. サイト内の画像をすぐに変更したい可能性があります... max-age実際に何かによって使用されている場合、その性質上、これが次のことを確認しないと思います画像は 7 日間変更されています...それも私たちが望んでいるものではありません

ベスト プラクティスは、サイトをコンテンツのフォルダーに分割することであり、頻繁に変更されることはなく、これらのフォルダーの長期的な有効期限のみをオンにすることでしょうか? おそらく、必要に応じてこれらのフォルダーのコンテンツを強制的に更新するためにクエリ文字列を変更します (例: /assets/images/background.png?version=2) ?

とにかく、(かなり乾燥した!) HTTP 仕様といくつかのチュートリアルに目を通しても、私たちの状況で何が正しいのかまだよくわかりません。

私たちと同様の状況の実世界での経験は、非常に高く評価されます!

4

1 に答える 1