RequestCacheLevel RequestCacheLevel RequestCacheLevel RequestCacheLevel Enum

定義

使用して取得されるリソースのキャッシュ動作を指定しますWebRequestとその派生クラス。Specifies caching behavior for resources obtained using WebRequest and its derived classes.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
継承
RequestCacheLevelRequestCacheLevelRequestCacheLevelRequestCacheLevel

フィールド

BypassCache BypassCache BypassCache BypassCache 1

サーバーを使用して要求に応じます。Satisfies a request by using the server. クライアントとサーバー間では、エントリはキャッシュから取得したり、キャッシュに追加、またはキャッシュから削除したりされません。No entries are taken from caches, added to caches, or removed from caches between the client and server. これは、.NET Framework と共に配布されるコンピューターの構成ファイルで指定されている既定のキャッシュ動作です。This is the default cache behavior specified in the machine configuration file that ships with the .NET Framework.

CacheIfAvailable CacheIfAvailable CacheIfAvailable CacheIfAvailable 3

リソースがある場合、キャッシュからリソースの要求に応じます。それ以外の場合、サーバーにリソースへの要求を送信します。Satisfies a request for a resource from the cache, if the resource is available; otherwise, sends a request for a resource to the server. 要求されたアイテムがクライアントとサーバー間のキャッシュにある場合は、その中間キャッシュから要求に応じることもあります。If the requested item is available in any cache between the client and the server, the request might be satisfied by the intermediate cache.

CacheOnly CacheOnly CacheOnly CacheOnly 2

ローカルにキャッシュされたリソースを使用して要求に応じ、キャッシュにないアイテムの要求は送信しません。Satisfies a request using the locally cached resource; does not send a request for an item that is not in the cache. このキャッシュ ポリシー レベルが指定されている場合、アイテムがクライアントのキャッシュになければ WebException 例外がスローされます。When this cache policy level is specified, a WebException exception is thrown if the item is not in the client cache.

Default Default Default Default 0

キャッシュされたリソースのコピーを使用するか、リソースの要求をサーバーに送信して、リソースの要求に応じます。Satisfies a request for a resource either by using the cached copy of the resource or by sending a request for the resource to the server. 実行される動作は、現在のキャッシュ ポリシーとキャッシュ内のコンテンツの世代によって決まります。The action taken is determined by the current cache policy and the age of the content in the cache. これが、ほとんどのアプリケーションで使用されるキャッシュ レベルです。This is the cache level that should be used by most applications.

NoCacheNoStore NoCacheNoStore NoCacheNoStore NoCacheNoStore 6

キャッシュのリソースを使用して要求に応じることはなく、リソースをキャッシュしません。Never satisfies a request by using resources from the cache and does not cache resources. リソースがローカル キャッシュに存在する場合は、削除されます。If the resource is present in the local cache, it is removed. このポリシー レベルは、中間キャッシュに、リソースをキャッシュから削除する必要があることを示します。This policy level indicates to intermediate caches that they should remove the resource. HTTP キャッシュ プロトコルの場合、これは no-cache キャッシュ制御ディレクティブを使用して実現されます。In the HTTP caching protocol, this is achieved using the no-cache cache control directive.

Reload Reload Reload Reload 5

サーバーを使用して要求に応じます。Satisfies a request by using the server. 応答は、キャッシュに保存される可能性があります。The response might be saved in the cache. Http キャッシュ プロトコルの場合、これを使用して、no-cacheキャッシュ制御ディレクティブおよび no-cachePragmaヘッダー。In the HTTP caching protocol, this is achieved using the no-cache cache control directive and the no-cache Pragma header.

Revalidate Revalidate Revalidate Revalidate 4

タイムスタンプが、サーバー上のリソースのタイムスタンプと同じである場合は、リソースのキャッシュされたコピーを使用して、要求に応じます。それ以外の場合、リソースにサーバーからダウンロード、呼び出し元に表示される、キャッシュに格納します。Satisfies a request by using the cached copy of the resource if the timestamp is the same as the timestamp of the resource on the server; otherwise, the resource is downloaded from the server, presented to the caller, and stored in the cache.

次のコード例では、キャッシュ内にある場合にのみ、リソースを返すポリシーを作成します。The following code example creates policy that returns a resource only if it is in the cache.

static WebResponse^ GetResponseFromCache( Uri^ uri )
{
   RequestCachePolicy^ policy = gcnew RequestCachePolicy( RequestCacheLevel::CacheOnly );
   WebRequest^ request = WebRequest::Create( uri );
   request->CachePolicy = policy;
   WebResponse^ response = request->GetResponse();
   Console::WriteLine( L"Policy level is {0}.", policy->Level );
   Console::WriteLine( L"Is the response from the cache? {0}", response->IsFromCache );
   return response;
}
public static WebResponse GetResponseFromCache(Uri uri)
{
     RequestCachePolicy policy = 
        new  RequestCachePolicy( RequestCacheLevel.CacheOnly);
    WebRequest request = WebRequest.Create(uri);
    request.CachePolicy = policy;
    WebResponse response = request.GetResponse();
    Console.WriteLine("Policy level is {0}.", policy.Level.ToString());
    Console.WriteLine("Is the response from the cache? {0}", response.IsFromCache);  
    return response;
    
} 

注釈

この列挙体のメンバーは初期化に使用されるRequestCachePolicyオブジェクト。Members of this enumeration are used to initialize RequestCachePolicy objects. 現在の設定、RequestCachePolicyオブジェクトが表示されます、HttpRequestCachePolicy.Levelプロパティ。The current setting for a RequestCachePolicy object is available in the HttpRequestCachePolicy.Level property.

これは、BypassCache値は、.NET Framework に付属するマシンの構成ファイルで指定された既定のキャッシュ動作します。This BypassCache value is the default cache behavior specified in the machine configuration file that ships with the .NET Framework. クライアントとサーバー間では、エントリはキャッシュから取得したり、キャッシュに追加、またはキャッシュから削除したりされません。No entries are taken from caches, added to caches, or removed from caches between the client and server.

HttpWebRequest.DefaultCachePolicyプロパティは、既定のキャッシュ ポリシーの設定を取得または使用HttpWebRequestインスタンス。The HttpWebRequest.DefaultCachePolicy property is used to get or set the default cache policy for HttpWebRequest instances. WebRequest.CachePolicyプロパティを取得または設定の既定のキャッシュ ポリシーを使用するWebRequestインスタンス。The WebRequest.CachePolicy property is used to get or set the default cache policy for a WebRequest instances. WebRequest.CachePolicy取得または特定の要求のキャッシュ ポリシーを設定するプロパティを使用します。The WebRequest.CachePolicy property is used to get or set the cache policy for a specific request.

キャッシュの動作がある場合CacheIfAvailableまたはRevalidateリソースの応答ストリームが取得され、ストリームの末尾に読み込まれる場合、要求されたリソースのコピーはキャッシュに追加のみです。If the cache behavior is CacheIfAvailable or Revalidate, a copy of a requested resource is only added to the cache if the response stream for the resource is retrieved and read to the end of the stream. CacheIfAvailable、後続の要求で同じリソースがキャッシュされたコピーを使用します。With CacheIfAvailable, subsequent requests for the same resource would use a cached copy. Revalidate、後続の要求で同じリソースはキャッシュされたコピーを使用は、キャッシュされたリソースのタイムスタンプが、サーバー上のリソースのタイムスタンプと同じである場合。With Revalidate, subsequent requests for the same resource would use a cached copy if the timestamp for the cached resource is the same as the timestamp of the resource on the server.

リソースのコピーは、リソースの応答ストリームが取得され、ストリームの末尾に読み込まれる場合にのみ、キャッシュに追加されます。A copy of a resource is only added to the cache if the response stream for the resource is retrieved and read to the end of the stream. 同じリソースに対してもう 1 つの要求は、この要求の既定のキャッシュ ポリシー レベルによって、キャッシュされたコピーを使用できます。So another request for the same resource could use a cached copy, depending on the default cache policy level for this request.

適用対象

こちらもご覧ください