場所ベースのキャッシュ ポリシー

場所ベースのキャッシュ ポリシーでは、要求されたリソースを取得できる場所に基づいて、有効なキャッシュされたエントリの鮮度を定義します。 キャッシュされたリソースを使用しても、サーバーに指定されている再検証要件に違反しない場合、キャッシュされたリソースは有効です。 場所ベースのキャッシュ ポリシーをプログラムで作成するには、RequestCachePolicy または HttpRequestCachePolicy クラス コンストラクターを使用します。 場所ベースのポリシーの種類は、RequestCacheLevel または HttpRequestCacheLevel 列挙値を使用してコンストラクターに渡されます。 場所ベースのキャッシュ ポリシーを作成するコード例については、「How to: Set a Location-Based Cache Policy for an Application」(方法: アプリケーションの場所ベースのキャッシュ ポリシーを設定する) を参照してください。 以下のセクションでは、ハイパーテキスト転送プロトコル (http と https) リソースに使用できる各種の場所ベースのキャッシュ ポリシーを定義します。

"利用可能ならキャッシュを使用" ポリシー

有効な要求されたリソースがローカル キャッシュ内にある場合、キャッシュされたリソースが使用されます。それ以外の場合、そのリソースの要求はサーバーに送信されます。 要求されたリソースがクライアントとサーバーの間の何らかのキャッシュ内にある場合、中間のキャッシュが要求を満たすことができます。

"キャッシュのみを使用" ポリシー

有効な要求されたリソースがローカル キャッシュ内にある場合、キャッシュされたリソースが使用されます。 このキャッシュ ポリシー レベルが指定された場合、項目がローカル キャッシュ内にない場合は WebException 例外がスローされます。

"キャッシュまたは次のキャッシュのみを使用" ポリシー

有効な要求されたリソースがローカル キャッシュ内にあるか、ローカル エリア ネットワーク上の中間キャッシュ内にある場合、キャッシュされたリソースが使用されます。 このような操作を行わない場合、WebException 例外がスローされます。 HTTP キャッシュ プロトコルの場合、only-if-cached キャッシュ コントロール ディレクティブを使用してこの処理が実行されます。

"キャッシュを使用せず格納しない" ポリシー

要求されたリソースはキャッシュ内からは使用されず、キャッシュには格納されません。 要求されたリソースがローカル キャッシュ内にある場合は削除されます。 このポリシー レベルは、リソースの削除も必要な中間キャッシュに指定します。 HTTP キャッシュ プロトコルの場合、no-store キャッシュ コントロール ディレクティブを使用してこの処理が実行されます。

更新ポリシー

要求されたリソースがサーバーから取得された場合、またはローカル キャッシュ以外のキャッシュで見つかった場合、その要求されたリソースを使用できます。 中間キャッシュが要求を満たす前に、そのキャッシュは、サーバーに対してキャッシュされたエントリの再検証を行う必要があります。 HTTP キャッシュ プロトコルの場合、max-age = 0 キャッシュ コントロール ディレクティブと、no-cache Pragma ヘッダーを使用してこの処理が実行されます。

ポリシーの再読み込み

要求されたリソースは、サーバーから取得する必要があります。 リソースがローカル キャッシュに保存されている可能性があります。 HTTP キャッシュ プロトコルの場合、no-cache キャッシュ コントロール ディレクティブと、no-cache Pragma ヘッダーを使用してこの処理が実行されます。

再検証ポリシー

キャッシュ内のリソースのコピーとサーバー上のコピーを比較します。 サーバー上のコピーが新しい場合は、要求を満たすために使用され、キャッシュ内のコピーは置き換えられます。 キャッシュ内のコピーがサーバー上のコピーと同じ場合、キャッシュされたコピーが使用されます。 HTTP キャッシュ プロトコルの場合、条件付き要求を使用してこの処理が実行されます。

関連項目