2013-03-14 8 views
5

Cache-Control: no-cacheのHTTP応答とCache-Control: max-age=0, must-revalidate, proxy-revalidateのHTTP応答の違いは何ですか?"no-cache"と "max-age = 0、再検証が必要、プロキシの再検証が必要"

ブラウザでは、と同じように扱われますか?

+1

意味的に;あまりない。しかし、それはより短いです。 –

+1

@マークノッティンガム。これは現実世界にも保持されますか?ブラウザは実際にそれらを*同一*として扱いますか? – Pacerier

+0

私はしばらくテストしていませんが、私はそう信じています。 –

答えて

2

一般に、異なるブラウザはまったく同じ動作をしません。 HTTPキャッシュヘッダー。

クロム(afair)がmax-age=0を指定したかのように扱います(動作の違いを前提としていますが、これはソースが見つからないため、正確な動作の説明は100%ではありません)。十分に小さいものの、パフォーマンスへの影響は依然として意味があります)。ここで

いずれの場合においても

は、ブラウザ間でHTTPキャッシュの挙動差のいくつかの他の例は:

  • 一部は1.0キャッシュヘッダ(Pragma)をHTTPを優先し、他のものは1.1キャッシュヘッダをHTTPに優先を与える
  • 一部のブラウザ(FFの+?)don't honorno-storeディレクティブとストアデータ暗号化されたキャッシュ内
  • 一部のブラウザはno-cacheディレクティブを無視するがpublic後に指定され、他にはありません。
  • IE ignoresmax-agevaryが存在する場合。
  • など

私の全体的な勧告は、すべてのブラウザがこれらのヘッダとコンテンツをキャッシュしないようにするためにCache-Control: no-cache, must-revalidate, proxy-revalidatepragma: no-cache(HTTP 1.0)とExpires: 0の両方を使用することです。

+0

Chromeは「max 'max-age = 10'を指定したかのように-age = 0'? – Pacerier

+0

私はこれを覚えていますが、ソースを見つけることができません。正しい情報源が見つかるまで、私は予約で答えを更新します。いずれにしても、私は、同じwrtを振るわない多くのブラウザの例をもたらすことができます。 HTTPキャッシュヘッダー。 –