RequestCacheLevel 열거형

정의

WebRequest 클래스와 이 클래스의 파생 클래스를 사용하여 가져온 리소스의 캐싱 동작을 지정합니다.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
상속
RequestCacheLevel

필드

BypassCache 1

서버를 사용하여 요청을 만족시킵니다. 클라이언트와 서버 사이의 캐시에서 어떤 항목도 가져가거나, 추가하거나, 제거하지 않습니다. 이 동작은 .NET Framework에서 제공하는 시스템 구성 파일에 기본적으로 지정된 캐시 동작입니다.

CacheIfAvailable 3

캐시의 리소스를 사용할 수 있는 경우 캐시에서 리소스 요청을 만족시키고, 그렇지 않으면 리소스 요청을 서버로 보냅니다. 요청된 항목을 클라이언트와 서버 사이의 캐시에서 사용할 수 있으면 중간 캐시에서 요청을 만족시킬 수 있습니다.

CacheOnly 2

로컬로 캐시된 리소스를 사용하여 요청을 만족시키며, 캐시에 해당 항목이 없더라도 요청을 서버로 보내지는 않습니다. 이 캐시 정책 수준이 지정된 경우 클라이언트 캐시에 항목이 없으면 WebException 예외가 throw됩니다.

Default 0

캐시된 리소스 복사본을 사용하거나 서버로 리소스 요청을 보냄으로써 리소스 요청을 만족시킵니다. 현재 캐시 정책과 콘텐츠가 캐시에 보관된 기간에 따라 수행할 작업이 결정됩니다. 대부분의 애플리케이션에서는 이 캐시 수준을 사용해야 합니다.

NoCacheNoStore 6

캐시의 리소스를 사용하여 요청을 만족시키지 않고 리소스를 캐시하지 않습니다. 리소스가 로컬 캐시에 있으면 제거됩니다. 이 정책 수준은 중간 캐시에서 리소스를 제거해야 함을 나타냅니다. HTTP 캐싱 프로토콜에서 이 작업은 no-cache 캐시 제어 지시문을 사용하여 수행됩니다.

Reload 5

서버를 사용하여 요청을 만족시킵니다. 응답은 캐시에 저장될 수 있습니다. HTTP 캐싱 프로토콜에서 이 작업은 no-cache 캐시 제어 지시문과 no-cache Pragma 헤더를 사용하여 수행됩니다.

Revalidate 4

캐시된 리소스 복사본의 타임스탬프가 서버에 있는 리소스의 타임스탬프와 동일하면 캐시된 리소스 복사본을 사용하여 요청을 만족시키고, 그렇지 않으면 서버에서 리소스를 다운로드하여 호출자에게 제공한 다음 캐시에 저장합니다.

예제

다음 코드 예제에서는 캐시에 있는 경우에만 리소스를 반환하는 정책을 만듭니다.

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 데 사용됩니다. 개체의 RequestCachePolicy 현재 설정은 속성에서 HttpRequestCachePolicy.Level 사용할 수 있습니다.

BypassCache 값은 .NET Framework 함께 제공되는 컴퓨터 구성 파일에 지정된 기본 캐시 동작입니다. 클라이언트와 서버 사이의 캐시에서 어떤 항목도 가져가거나, 추가하거나, 제거하지 않습니다.

HttpWebRequest.DefaultCachePolicy 속성은 인스턴스에 대한 HttpWebRequest 기본 캐시 정책을 가져오기 또는 설정하는 데 사용됩니다. 이 WebRequest.CachePolicy 속성은 인스턴스에 대한 WebRequest 기본 캐시 정책을 가져오기 또는 설정하는 데 사용됩니다. 속성 WebRequest.CachePolicy 은 특정 요청에 대한 캐시 정책을 가져오기 또는 설정하는 데 사용됩니다.

캐시 동작이 CacheIfAvailable 있거나 Revalidate요청된 리소스의 복사본은 리소스에 대한 응답 스트림을 검색하고 스트림의 끝까지 읽는 경우에만 캐시에 추가됩니다. 이 경우 CacheIfAvailable동일한 리소스에 대한 후속 요청은 캐시된 복사본을 사용합니다. 캐시 Revalidate된 리소스에 대한 타임스탬프가 서버의 리소스 타임스탬프와 동일한 경우 동일한 리소스에 대한 후속 요청은 캐시된 복사본을 사용합니다.

응답 스트림에 리소스를 검색 하 고 스트림의 끝까지 읽는 경우에 리소스의 복사본이 캐시에 추가 됩니다. 따라서 동일한 리소스에 대한 다른 요청은 이 요청에 대한 기본 캐시 정책 수준에 따라 캐시된 복사본을 사용할 수 있습니다.

적용 대상

추가 정보