다음을 통해 공유


방법: 애플리케이션에 대한 Location-Based 캐시 정책 설정

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

애플리케이션에 대한 위치 기반 캐시 정책을 설정하려면

  1. 개체 RequestCachePolicy 또는 HttpRequestCachePolicy를 만듭니다.

  2. 정책 개체를 애플리케이션 도메인의 기본값으로 설정합니다.

캐시에서 요청된 리소스를 사용하는 정책을 설정하려면

  • 사용 가능한 경우 캐시에서 요청된 리소스를 사용하는 정책을 만들고, 그렇지 않으면 캐시 수준을 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
    

참고하십시오