HttpCachePolicy.VaryByContentEncodings 속성

정의

출력 캐시를 변경하는 데 사용할 Content-Encoding 헤더 목록을 가져옵니다.

public:
 property System::Web::HttpCacheVaryByContentEncodings ^ VaryByContentEncodings { System::Web::HttpCacheVaryByContentEncodings ^ get(); };
public System.Web.HttpCacheVaryByContentEncodings VaryByContentEncodings { get; }
member this.VaryByContentEncodings : System.Web.HttpCacheVaryByContentEncodings
Public ReadOnly Property VaryByContentEncodings As HttpCacheVaryByContentEncodings

속성 값

HttpCacheVaryByContentEncodings

캐시된 응답을 선택하는 데 사용하는 Content-Encoding 헤더를 지정하는 개체입니다.

예제

다음 예제에서는 출력 캐시에서 제공되는 페이지에 대해 동적으로 압축된 응답을 사용하도록 설정하는 방법을 보여 줍니다. 허용되는 인코딩은 "gzip"이며 @ OutputCache 지시문의 특성을 사용하여 VaryByContentEncodings 설정됩니다. 페이지를 호스팅하는 웹 서버에서 동적 압축을 사용하도록 설정하지 않은 경우 출력 캐시에는 지정된 콘텐츠 인코딩을 기반으로 하는 캐시된 응답이 없습니다.

<%@ Page Language="C#" %>
<%@ OutputCache VaryByParam="none" Duration="10" VaryByContentEncodings="gzip" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Varying Output Cache By Content Encoding</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <%= DateTime.Now.ToString() %>
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ OutputCache VaryByParam="none" Duration="10" VaryByContentEncodings="gzip" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Varying Output Cache By Content Encoding</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <%= DateTime.Now.ToString() %>
    </div>
    </form>
</body>
</html>

설명

이 속성은 VaryByContentEncodings 출력 캐시에 따라 달라지는 압축 체계를 나타내는 Content-Encoding 헤더 목록을 반환합니다. 동적으로 압축된 응답을 캐싱한다는 것은 리소스에 대한 첫 번째 요청 동안 압축 비용이 한 번만 발생한다는 것을 의미합니다.

VaryByContentEncodings 속성은 동적으로 압축되는 다양한 콘텐츠 인코딩에 대해 캐시된 응답을 제공하는 방법을 결정하기 위해 요청의 헤더와 함께 Accept-Encoding 사용됩니다. Accept-Encoding 헤더에는 클라이언트가 압축을 풀 수 있는 인코딩이 나열됩니다.

캐시를 콘텐츠 인코딩에 따라 다르게 설정하면 헤더의 값 Accept-Encoding 에 따라 응답이 간접적으로 달라질 수 있습니다. 요청이 처리되면 헤더가 Accept-Encoding 선택되고 첫 번째 허용 인코딩이 식별되고 다음 작업 중 하나를 수행하는 데 사용됩니다.

  • 일치하는 인코딩이 VaryByContentEncodings 목록에 있고 캐시된 응답이 있는 경우 캐시된 응답이 전송됩니다.

  • 일치하는 인코딩이 VaryByContentEncodings 목록에 있지만 캐시된 응답이 없는 경우 응답이 생성되어 캐시에 삽입됩니다.

  • 일치하는 인코딩을 목록에서 찾을 수 VaryByContentEncodings 없는 경우 캐시는 ID 응답이라고도 하는 인코딩되지 않은 응답을 검색합니다. 인코딩되지 않은 응답이 발견되면 전송됩니다. 그렇지 않으면 인코딩되지 않은 새 응답이 생성, 전송 및 캐시에 저장됩니다.

이 속성에 대한 VaryByContentEncodings 자세한 내용은 W3C(World Wide Web Consortium) 웹 사이트에서 사용할 수 있는 "RFC 2616: 하이퍼텍스트 전송 프로토콜 -- HTTP/1.1"을 참조하세요. 콘텐츠 인코딩에 대한 정보는 "헤더 필드 정의" 섹션 14에 있습니다.

@ OutputCache 지시문의 특성을 사용하여 VaryByContentEncodings 속성을 설정할 VaryByContentEncodings 수 있습니다. Web.config 파일의 outputCacheProfile 요소에 캐시 프로필을 추가할 수도 있습니다.

VaryByContentEncodings .NET Framework 버전 3.5에서에서 도입 되었습니다. 자세한 내용은 버전 및 종속성을 참조하세요.

적용 대상

추가 정보