IIS 7.0でホストされている画像、スクリプト、CSSなど、トラフィックの多い静的サイトがかなりあります(サーバーコードなし)。トラフィックの多い静的サイトのHTTPキャッシュのベストプラクティスとは何ですか?
キャッシュを有効にしてサーバーの負荷を軽減したいウェブコンテンツの有効期限を将来に設定することが検討されています。 IISでは、IISレスポンスヘッダーモジュールの一般的なhttpヘッダーの「Webコンテンツの有効期限」セクションを使用して、グローバルレベルでこれを実行できます。おそらく、提供してから7日後にコンテンツが期限切れになるように設定します。
これはすべて実際にはmax-age
HTTP応答ヘッダーを設定しています。これまでのところ、わかるように、意味があります。
は今、混乱:
はまず、私がチェックしたすべてのブラウザ(IE9、クローム、FF4)は、これを無視して、まだ内容が変更されているかどうかを確認するために、サーバーへの条件付きの要求を行うように見えます。だから、私は完全に最大の年齢の応答ヘッダーが実際に影響を与えるかどうか分からないのですか?それは古いブラウザかもしれませんか?またはWebキャッシュ?
サイト内の画像を短時間で変更したい場合があります...最大年齢がの場合、その本質上、実際に使用されていると思いますこのイメージが変更されたならば、それは我々が
いずれか欲しいものではありませんので、ベストプラクティスが本当に変わりませんコンテンツのフォルダに自分のサイトを分割することですかしら... 7日をチェックしません。しばしばこれらのフォルダの長期有効期限をオンにするだけですか?おそらく、必要に応じてこれらのフォルダ内のコンテンツを更新するようクエリ文字列を変更する必要があります(例:/assets/images/background.png?version=2)?
とにかく、かなり乾燥したHTTP specificationと、tutorialsの一部を見ても、わたしはまだ自分の状況にぴったりのものがあるのかどうかはまだ感じていません。
私たちのような状況で実際に経験したことがあれば幸いです!
サーバーコード+ IISなしのトラフィックが多い。0の代わりにnginxを使用することをお勧めします(私の考えでは、IISと同じくらい劣っているものを使用する唯一の言い訳は、別のWebサーバーでサポートされていないサーバー側のコードに対して本当に必要な場合です)。場合、本当に理由はありません)。 – Damon
実際にWebサーババッシング競争を望んでいない - 私が実際にやりたくないさまざまな理由でプラットフォームを変更することはできません...興味深いHTTPのベストプラクティスです。 – Kram
IISに任意のヘッダーを追加するオプションがあるかどうかわかりませんが、必要なのは 'Expires:'と 'Last Modified:'です。これは、プロキシとクライアントに新しいコピーをフェッチする時期を知らせます。 HTMLの 'Expires:'を 'http-equiv =" expires "'で画像に埋め込むこともできます。IISに関する私のコメントがちょっと聞こえてしまった場合は申し訳ありません。正確には軽量ではなく、緊急に必要でないときに超重量プログラムを実行することが、私の意見では最初に変わるように思えるだけです。しかし、まあ、それをスキップしましょう。これらのヘッダーを設定できるかどうか確認してください。おそらく役に立ちます:-) – Damon