3

ブラウザーのキャッシュから直接提供されると予想される静的リソース (画像、css ファイルなど) に対する予期しない要求を多数受信している Web サイトがあります。これはパフォーマンスの問題であり、なぜそれが起こっているのか理解できません。

静的リソースごとに、Web サイトはExpires24 時間後のLast-Modifiedヘッダー、画像/css ファイルの変更日のヘッダー、および次の情報を返しますETag

Expires: Wed, 07 Dec 2011 13:50:47 GMT
Last-Modified: Thu, 14 Jul 2011 15:19:16 GMT
ETag: W/"4875-1310656756000"

これらの設定を使用すると、ブラウザーが初めて画像または css ファイルを要求した後、次のことが期待できます。

  • さらに 24 時間はリソースを再要求しません。
  • 24 時間後、リソースを再リクエストし、If-Modified-Sinceヘッダーとヘッダーを渡します。If-None-Matchサーバーはステータスで応答し304ます (サーバー側で何も変更されていないと仮定します)。

これは、ほとんどの場合に発生することです。

ただし、静的リソースがキャッシュされていないように見え、ページごとにリクエストされているブラウザー セッションがいくつか見られます

これらのリクエストを見ると、If-Modified-SinceまたはIf-None-Matchヘッダーが受信されていません。200その後、サーバーは毎回ステータスで応答し、要求されたリソースを返します。これは追跡したいパフォーマンスの問題です。

この問題は、ブラウザと Web サイトの間に HTTP プロキシ/キャッシュが存在することが原因であると思われます (問題のセッションは通常、企業のファイアウォールの背後から発生します)。もしそうなら、なぜプロキシがこのようにヘッダーに干渉するのExpiresか理解できません。EtagLast-Modified

関連する場合のいくつかの追加情報:

  • Date現在、ヘッダーを設定していません。Expires/Last-Modifiedヘッダーが正しく機能するために必要ですか?
  • /で十分Cache-Controlだと考えて、現在ヘッダーを設定していません。ExpiresLast-Modified
  • Web サイトは https と http の両方で展開されており、両方の展開で問題が発生しました。これでプロキシが原因でなくなると思っていましたが、一部のプロキシが SSL トラフィックをインターセプトすることがわかりました。

他の誰かが同様のことを経験し、なぜそれが起こるのかを知りましたか?

4

0 に答える 0