RequestCacheLevel 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
WebRequest 클래스와 이 클래스의 파생 클래스를 사용하여 가져온 리소스의 캐싱 동작을 지정합니다.
public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel =
Public Enum RequestCacheLevel
- 상속
필드
BypassCache | 1 | 서버를 사용하여 요청을 만족시킵니다. 클라이언트와 서버 사이의 캐시에서 어떤 항목도 가져가거나, 추가하거나, 제거하지 않습니다. 이 동작은 .NET Framework에서 제공하는 시스템 구성 파일에 기본적으로 지정된 캐시 동작입니다. |
CacheIfAvailable | 3 | 캐시의 리소스를 사용할 수 있는 경우 캐시에서 리소스 요청을 만족시키고, 그렇지 않으면 리소스 요청을 서버로 보냅니다. 요청된 항목을 클라이언트와 서버 사이의 캐시에서 사용할 수 있으면 중간 캐시에서 요청을 만족시킬 수 있습니다. |
CacheOnly | 2 | 로컬로 캐시된 리소스를 사용하여 요청을 만족시키며, 캐시에 해당 항목이 없더라도 요청을 서버로 보내지는 않습니다. 이 캐시 정책 수준이 지정된 경우 클라이언트 캐시에 항목이 없으면 WebException 예외가 throw됩니다. |
Default | 0 | 캐시된 리소스 복사본을 사용하거나 서버로 리소스 요청을 보냄으로써 리소스 요청을 만족시킵니다. 현재 캐시 정책과 콘텐츠가 캐시에 보관된 기간에 따라 수행할 작업이 결정됩니다. 대부분의 애플리케이션에서는 이 캐시 수준을 사용해야 합니다. |
NoCacheNoStore | 6 | 캐시의 리소스를 사용하여 요청을 만족시키지 않고 리소스를 캐시하지 않습니다. 리소스가 로컬 캐시에 있으면 제거됩니다. 이 정책 수준은 중간 캐시에서 리소스를 제거해야 함을 나타냅니다. HTTP 캐싱 프로토콜에서 이 작업은 |
Reload | 5 | 서버를 사용하여 요청을 만족시킵니다. 응답은 캐시에 저장될 수 있습니다. HTTP 캐싱 프로토콜에서 이 작업은 |
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
된 리소스에 대한 타임스탬프가 서버의 리소스 타임스탬프와 동일한 경우 동일한 리소스에 대한 후속 요청은 캐시된 복사본을 사용합니다.
응답 스트림에 리소스를 검색 하 고 스트림의 끝까지 읽는 경우에 리소스의 복사본이 캐시에 추가 됩니다. 따라서 동일한 리소스에 대한 다른 요청은 이 요청에 대한 기본 캐시 정책 수준에 따라 캐시된 복사본을 사용할 수 있습니다.