HttpCacheVaryByContentEncodings Класс

Определение

Предоставляет типобезопасный способ задать свойство VaryByContentEncodings класса HttpCachePolicy.Provides a type-safe way to set the VaryByContentEncodings property of the HttpCachePolicy class.

public ref class HttpCacheVaryByContentEncodings sealed
public sealed class HttpCacheVaryByContentEncodings
type HttpCacheVaryByContentEncodings = class
Public NotInheritable Class HttpCacheVaryByContentEncodings
Наследование
HttpCacheVaryByContentEncodings

Примеры

В следующем примере показано, как включить динамически сжатый ответ, который может быть обслужен из кэша вывода.The following example shows how to enable a dynamically compressed response that can be served from the output cache. Допустимая кодировка — gzip и задается с помощью VaryByContentEncodings атрибута директивы.The encoding that is acceptable is "gzip" and is set by using the VaryByContentEncodings attribute of the directive. Если на веб-сервере, на котором размещена страница, не включено динамическое сжатие, то кэш вывода не будет иметь кэшированный ответ для указанной кодировки содержимого.If the Web server that hosts the page does not have dynamic compression enabled, the output cache will not have a cached response for 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 is used to specify whether dynamically compressed responses are cached. Кэширование динамически сжатых ответов означает, что затраты на сжатие происходят только один раз, во время первого запроса ресурса (или после перезапуска приложения) и после истечения срока действия элемента кэша.Caching dynamically compressed responses means that the cost of compression is incurred only one time, during the first request for the resource (or after an application restart) and when the cache item expires.

VaryByContentEncodings СвойствоHttpCachePolicy класса определяет, какие параметры заголовка запроса ASP.NET использует для уникальной идентификации варианта ответа, если для ресурса существует несколько кэшированных ответов.The VaryByContentEncodings property of the HttpCachePolicy class identifies which request header parameters ASP.NET uses to uniquely identify a variation of the response if there are multiple cached responses for a resource. Это полезно, когда ответ зависит от набора входных данных клиента, например заголовков, параметров или кодировок содержимого.This is useful when a response depends on a set of client inputs, such as headers, parameters, or content encodings.

HttpCacheVaryByContentEncodings Класс не связан напрямую с заголовками Cache-Control HTTP.The HttpCacheVaryByContentEncodings class is not directly related to HTTP cache-control headers. Однако он помогает гарантировать, что ответ клиента или прокси-сервера зависит от указанной кодировки содержимого.However, it helps make sure that a response to a client or a proxy varies by the specified content encoding. Настройка кэша в зависимости от кодировки содержимого позволяет ASP.NET изменять ответ Accept-Encoding в заголовке.Setting the cache to vary by content encoding enables ASP.NET to vary the response by 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 also found in the VaryByContentEncodings list and a cached response exists, the cached response is sent.

  • Если соответствующая кодировка также найдена в VaryByContentEncodings списке, но кэшированный ответ не существует, то создается ответ и вставляется в кэш.If a matching encoding is also 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 identity response is found, it is sent. В противном случае создается новый незакодированный ответ, который сохраняется в кэше.Otherwise a new non-encoded response is generated 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, available on the World Wide Web Consortium (W3C) Web site. Подробные сведения см. в разделе 14 «определения полей заголовка».See section 14, "Header Field Definitions", for complete details.

VaryByContentEncodings Свойство можно задать с помощью директивы или путем добавления профиля к элементу в файле Web. config.You can set the VaryByContentEncodings property by using the directive or by adding a profile to the element in the Web.config file.

Конструкторы

HttpCacheVaryByContentEncodings()

Инициализирует новый экземпляр класса HttpCacheVaryByContentEncodings.Initializes a new instance of the HttpCacheVaryByContentEncodings class.

Свойства

Item[String]

Получает или задает значение, указывающее, изменяется ли кэш в соответствии с указанной кодировкой содержимого.Gets or sets a value that indicates whether the cache varies according to the specified content encoding.

Методы

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetContentEncodings()

Возвращает массив значений, указывающий кодировки содержимого, используемые для изменения кэша.Gets an array of values which specify the content encodings to be used for varying the cache.

GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
SetContentEncodings(String[])

Задает массив значений, указывающий кодировки содержимого, используемые для изменения кэша.Sets an array of values which specify the content encodings to be used for varying the cache.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

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

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