メインコンテンツまでスキップ

1. はじめに (Introduction)

HTTP [RFC2616] では、キャッシュは「保持している最新のレスポンスでリクエストに応答する...それはリクエストに適切である」ことが求められますが、「慎重に検討された状況」では古いレスポンスを返すことが許可されています。このドキュメントでは、このような制御を可能にする 2 つの独立した Cache-Control 拡張、stale-if-error と stale-while-revalidate を定義します。

stale-if-error HTTP Cache-Control 拡張を使用すると、エラー(例:500 Internal Server Error、ネットワークセグメント、または DNS 障害)が発生した場合に、キャッシュは「ハード」エラーを返すのではなく、古いレスポンスを返すことができます。これにより、可用性が向上します。

stale-while-revalidate HTTP Cache-Control 拡張を使用すると、キャッシュはバックグラウンドで再検証を行いながら、すぐに古いレスポンスを返すことができ、クライアントから遅延(ネットワークとサーバーの両方)を隠すことができます。

2. 表記規則 (Notational Conventions)

この文書のキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", および "OPTIONAL" は、RFC 2119 [RFC2119] で説明されているように解釈されます。

この仕様は RFC 2616 [RFC2616] の拡張バッカス・ナウア記法 (ABNF) を使用し、その仕様の delta-seconds ルールを含みます。