위치 기반 캐시 정책을 사용하면 애플리케이션이 요청된 리소스의 위치에 따라 캐싱 동작을 명시적으로 정의할 수 있습니다. 이 항목에서는 프로그래밍 방식으로 캐시 정책을 설정하는 방법을 보여 줍니다. 구성 파일을 사용하여 애플리케이션에 대한 정책을 설정하는 방법에 대한 자세한 내용은 요소(네트워크 설정)를 참조<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