방법: 애플리케이션에 대해 위치 기반 캐시 정책 설정
위치 기반 캐시 정책을 사용하면 애플리케이션이 요청된 리소스의 위치를 기반으로 캐싱 동작을 명시적으로 정의할 수 있습니다. 이 항목에서는 캐시 정책을 프로그래밍 방식으로 설정하는 방법을 보여 줍니다. 구성 파일을 사용하여 애플리케이션에 대한 정책을 설정하는 방법에 대한 자세한 내용은 <requestCaching>> 요소(네트워크 설정)를 참조하세요.
애플리케이션에 대해 위치 기반 캐시 정책을 설정하려면
RequestCachePolicy 또는 HttpRequestCachePolicy 개체를 만듭니다.
정책 개체를 애플리케이션 도메인의 기본값으로 설정합니다.
캐시에서 요청된 리소스를 가져오는 정책을 설정하려면
캐시를 사용할 수 있으면 캐시에서 요청된 리소스를 가져오는 정책을 만듭니다. 사용할 수 없으면 캐시 수준을 CacheIfAvailable로 설정하여 요청을 서버에 보냅니다. 원격 캐시를 포함하여 클라이언트와 서버 간에 캐시를 통해 요청을 수행할 수 있습니다.
public static void UseCacheIfAvailable() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.CacheIfAvailable); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub UseCacheIfAvailable() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.CacheIfAvailable) HttpWebRequest.DefaultCachePolicy = policy End Sub
캐시가 리소스를 제공하지 못하도록 제한하는 정책을 설정하려면
캐시 수준을 NoCacheNoStore로 설정하여 캐시가 요청된 리소스를 제공하지 못하도록 제한하는 정책을 만듭니다. 이 정책 수준은 캐시가 있는 경우 로컬 캐시에서 리소스를 제거하고 원격 캐시에서도 리소스를 제거해야 함을 나타냅니다.
public static void DoNotUseCache() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.NoCacheNoStore); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub DoNotUseCache() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.NoCacheNoStore) HttpWebRequest.DefaultCachePolicy = policy End Sub
리소스가 로컬 캐시에 있는 경우에만 요청된 리소스를 반환하는 정책을 설정하려면
캐시 수준을 CacheOnly로 설정하여 리소스가 로컬 캐시에 있는 경우에만 요청된 리소스를 반환하는 정책을 만듭니다. 요청된 리소스가 캐시에 없으면 WebException 예외가 throw됩니다.
public static void OnlyUseCache() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.CacheOnly); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub OnlyUseCache() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.CacheOnly) HttpWebRequest.DefaultCachePolicy = policy End Sub
로컬 캐시가 리소스를 제공하지 못하도록 제한하는 정책을 설정하려면
캐시 수준을 Refresh로 설정하여 로컬 캐시가 요청된 리소스를 제공하지 못하도록 제한하는 정책을 만듭니다. 요청된 리소스가 중간 캐시에 있고 성공적으로 유효성이 다시 검증된 경우 중간 캐시는 요청된 리소스를 제공할 수 있습니다.
public static void DoNotUseLocalCache() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.Refresh); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub DoNotUseLocalCache() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.Refresh) HttpWebRequest.DefaultCachePolicy = policy End Sub
캐시가 요청된 리소스를 제공하지 못하도록 제한하는 정책을 설정하려면
캐시 수준을 Reload로 설정하여 캐시가 요청된 리소스를 제공하지 못하도록 제한하는 정책을 만듭니다. 서버에서 반환된 리소스를 캐시에 저장할 수 있습니다.
public static void SendToServer() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.Reload); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub SendToServer() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.Reload) HttpWebRequest.DefaultCachePolicy = policy End Sub
서버의 리소스가 캐시된 복사본보다 최신 버전이 아닐 경우 캐시가 요청된 리소스를 제공하도록 허용하는 정책을 설정하려면
캐시 수준을 Revalidate로 설정하여 서버의 리소스가 캐시된 복사본보다 최신 버전이 아닐 경우 캐시가 요청된 리소스를 제공하도록 허용하는 정책을 만듭니다.
public static void CheckServer() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.Revalidate); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub CheckServer() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.Revalidate) HttpWebRequest.DefaultCachePolicy = policy End Sub
참고 항목
.NET