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 Свойство возвращает список заголовков содержимого, представляющих схемы сжатия для изменения кэша вывода.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:

  • Если в VaryByContentEncodings списке найдена совпадающая кодировка и существует кэшированный ответ, то отправляется кэшированный ответ.If a matching encoding is found in the VaryByContentEncodings list and a cached response exists, the cached response is sent.

  • Если в 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.

  • Если в VaryByContentEncodings списке не найдена совпадающая кодировка, поиск в кэше выполняется для незакодированного ответа, также называемого ответом на удостоверение.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: Протокол HTTP/1.1, доступный на веб-сайте консорциум W3C (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. Также можно добавить профиль кэша в элемент аутпуткачепрофиле в файле 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. Дополнительные сведения см. в статье Версии и зависимости платформы .NET Framework.For more information, see Versions and Dependencies.

Применяется к

Дополнительно