2011-08-01 7 views
2

IIS 7.0でホストされている画像、スクリプト、CSSなど、トラフィックの多い静的サイトがかなりあります(サーバーコードなし)。トラフィックの多い静的サイトのHTTPキャッシュのベストプラクティスとは何ですか?

キャッシュを有効にしてサーバーの負荷を軽減したいウェブコンテンツの有効期限を将来に設定することが検討されています。 IISでは、IISレスポンスヘッダーモジュールの一般的なhttpヘッダーの「Webコンテンツの有効期限」セクションを使用して、グローバルレベルでこれを実行できます。おそらく、提供してから7日後にコンテンツが期限切れになるように設定します。

これはすべて実際にはmax-age HTTP応答ヘッダーを設定しています。これまでのところ、わかるように、意味があります。

は今、混乱:

  1. はまず、私がチェックしたすべてのブラウザ(IE9、クローム、FF4)は、これを無視して、まだ内容が変更されているかどうかを確認するために、サーバーへの条件付きの要求を行うように見えます。だから、私は完全に最大の年齢の応答ヘッダーが実際に影響を与えるかどうか分からないのですか?それは古いブラウザかもしれませんか?またはWebキャッシュ?

  2. サイト内の画像を短時間で変更したい場合があります...最大年齢の場合、その本質上、実際に使用されていると思いますこのイメージが変更されたならば、それは我々が

いずれか欲しいものではありませんので、ベストプラクティスが本当に変わりませんコンテンツのフォルダに自分のサイトを分割することですかしら... 7日をチェックしません。しばしばこれらのフォルダの長期有効期限をオンにするだけですか?おそらく、必要に応じてこれらのフォルダ内のコンテンツを更新するようクエリ文字列を変更する必要があります(例:/assets/images/background.png?version=2)?

とにかく、かなり乾燥したHTTP specificationと、tutorialsの一部を見ても、わたしはまだ自分の状況にぴったりのものがあるのか​​どうかはまだ感じていません。

私たちのような状況で実際に経験したことがあれば幸いです!

+0

サーバーコード+ IISなしのトラフィックが多い。0の代わりにnginxを使用することをお勧めします(私の考えでは、IISと同じくらい劣っているものを使用する唯一の言い訳は、別のWebサーバーでサポートされていないサーバー側のコードに対して本当に必要な場合です)。場合、本当に理由はありません)。 – Damon

+0

実際にWebサーババッシング競争を望んでいない - 私が実際にやりたくないさまざまな理由でプラットフォームを変更することはできません...興味深いHTTPのベストプラクティスです。 – Kram

+0

IISに任意のヘッダーを追加するオプションがあるかどうかわかりませんが、必要なのは 'Expires:'と 'Last Modified:'です。これは、プロキシとクライアントに新しいコピーをフェッチする時期を知らせます。 HTMLの 'Expires:'を 'http-equiv =" expires "'で画像に埋め込むこともできます。IISに関する私のコメントがちょっと聞こえてしまった場合は申し訳ありません。正確には軽量ではなく、緊急に必要でないときに超重量プログラムを実行することが、私の意見では最初に変わるように思えるだけです。しかし、まあ、それをスキップしましょう。これらのヘッダーを設定できるかどうか確認してください。おそらく役に立ちます:-) – Damon

答えて

0

ブラウザは、最初にHTMLを取得し、次にすべてのリソース(CSS、JavaScript、画像など)を取得します。

HTMLの有効期限が近づく(1時間や1日など)ようにしてから、1年後に他のリソースが期限切れになる場合は、両方の世界を最大限に活用できます。

イメージやその他のリソースを更新する必要がある場合は、そのファイルの名前を変更し、一致するようにHTMLを更新するだけです。

次回ユーザーが新鮮なHTMLを取得すると、ブラウザーはそのイメージの新しいURLを表示し、キャッシュから他のすべてのリソースを取得しながら新しいイメージを取得します。

また、この執筆時点(2015年12月)に、Firefoxはサーバーへの同時接続の最大数を6に制限しています。これは、30以上のリソースがすべて同じWebサイトでホストされている場合、そのページがロードされるまでいつでも6つだけダウンロードされていることを意味します。一度にすべてがダウンロードされるように、コンテンツ配信ネットワーク(CDN)を使用してこれを少しスピードアップすることができます。

関連する問題