HttpCachePolicy.VaryByContentEncodings HttpCachePolicy.VaryByContentEncodings HttpCachePolicy.VaryByContentEncodings HttpCachePolicy.VaryByContentEncodings Property

정의

출력 캐시를 다양하게 하는 데 사용될 Content-Encoding 헤더의 목록을 가져옵니다.Gets the list of Content-Encoding headers that will be used to vary the output cache.

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

속성 값

캐시된 응답을 선택하는 데 사용되는 Content-Encoding 헤더를 지정하는 개체입니다.An object that specifies which Content-Encoding headers are used to select the cached response.

예제

다음 예제에서는 출력 캐시에서 제공 될 페이지에 대 한 동적으로 압축 된 응답을 사용 하도록 설정 하는 방법을 보여 줍니다.The following example shows how to enable a dynamically compressed response for a page to be served from the output cache. "Gzip"는 허용 되는 인코딩 및 사용 하 여 설정 됩니다는 VaryByContentEncodings 특성을 @ OutputCache 지시문입니다.The encoding that is acceptable is "gzip" and is set by using the VaryByContentEncodings attribute of the @ OutputCache directive. 페이지를 호스팅하는 웹 서버에 동적 압축을 사용 하는 경우 출력 캐시에 지정 된 콘텐츠 인코딩에 따라 캐시 된 응답을 수 없습니다.If the Web server that is hosting the page does not have dynamic compression enabled, the output cache will not have a cached response that is based on the specified content encoding.

<%@ 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 헤더의 목록을 반환 합니다.The VaryByContentEncodings property returns a list of Content-Encoding headers that represent compression schemes to vary the output cache by. 동적으로 압축 된 응답 캐싱 압축 비용이 한 번만 리소스에 대 한 첫 번째 요청 하는 동안 발생 하는 하는 것을 의미 합니다.Caching dynamically compressed responses means that the cost of compression is incurred only one time, during the first request for the resource.

합니다 VaryByContentEncodings 속성은 사용을 Accept-Encoding 동적으로 압축 되는 다른 콘텐츠 인코딩에 대 한 캐시 된 응답을 제공 하는 방법을 결정 하는 요청의 헤더입니다.The VaryByContentEncodings property is used with the Accept-Encoding header of a request to determine how to serve cached responses for different content encodings that are dynamically compressed. Accept-encoding 헤더 인코딩을 클라이언트 압축을 풀 수를 나열 합니다.The Accept-Encoding header lists the encodings that the client can decompress.

콘텐츠 인코딩에 따라 달라 지도록 캐시를 설정한 경우 응답을 값으로 직접 다양화 있습니다를 Accept-Encoding 헤더입니다.When you set the cache to vary by content encoding, it lets the response vary indirectly by the value in the Accept-Encoding header. 요청을 처리할 때의 Accept-Encoding 헤더를 검사 하 고는 첫 번째 허용 인코딩을 식별 하 고 다음 작업 중 하나를 수행 하는 데 사용 합니다.When a request is processed, the Accept-Encoding header is checked and the first acceptable encoding is identified and used to take one of the following actions:

  • 일치 하는 encoding에 있으면는 VaryByContentEncodings 목록 및 캐시 된 응답이 있는 캐시 된 응답을 전송 됩니다.If a matching encoding is found in the VaryByContentEncodings list and a cached response exists, the cached response is sent.

  • 일치 하는 encoding에 있으면는 VaryByContentEncodings 목록이 아니라 캐시 된 응답이 없는 경우, 응답 생성 되 고 캐시에 삽입 합니다.If a matching encoding is found in the VaryByContentEncodings list but a cached response does not exist, a response is generated and inserted into the cache.

  • 일치 하는 encoding에 없는 경우는 VaryByContentEncodings id 응답 라고도 인코딩되지 않은 응답을 검색 하는 목록에서 캐시 합니다.If a matching encoding is not found in the VaryByContentEncodings list, the cache is searched for a non-encoded response, also referred to as the identity response. 인코딩되지 않은 응답이 없으면 전송 됩니다.If the non-encoded response is found, it is sent. 이 고, 그렇지 새 인코딩되지 않은 응답을 생성, 전송 이며 캐시에 저장 합니다.Otherwise, a new non-encoded response is generated, sent, and stored in the cache.

에 대 한 자세한 내용은 VaryByContentEncodings 속성 참조 "RFC 2616: Hypertext Transfer Protocol-HTTP 1.1"에 제공 되는 World Wide Web Consortium (W3C) 웹 사이트합니다.For more information about the VaryByContentEncodings property, see "RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1," which is available on the World Wide Web Consortium (W3C) Web site. 콘텐츠 인코딩에 대 한 정보는 섹션 14 "헤더 필드 정의 합니다."Information about content encodings is in section 14, "Header Field Definitions."

설정할 수 있습니다는 VaryByContentEncodings 를 사용 하 여 속성을 VaryByContentEncodings 특성을 @ OutputCache 지시문입니다.You can set the VaryByContentEncodings property by using the VaryByContentEncodings attribute of the @ OutputCache directive. 캐시 프로필을 추가할 수도 있습니다는 outputCacheProfile Web.config 파일의 요소입니다.You can also add a cache profile to the outputCacheProfile element in the Web.config file.

VaryByContentEncodings .NET Framework 버전 3.5에서에서 도입 되었습니다.VaryByContentEncodings is introduced in the .NET Framework version 3.5. 자세한 내용은 버전 및 종속성을 참조하세요.For more information, see Versions and Dependencies.

적용 대상

추가 정보