HttpCacheVaryByContentEncodings Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет типобезопасный способ задать свойство VaryByContentEncodings класса HttpCachePolicy.
public ref class HttpCacheVaryByContentEncodings sealed
public sealed class HttpCacheVaryByContentEncodings
type HttpCacheVaryByContentEncodings = class
Public NotInheritable Class HttpCacheVaryByContentEncodings
- Наследование
-
HttpCacheVaryByContentEncodings
Примеры
В следующем примере показано, как включить динамически сжатый ответ, который можно обслуживать из кэша выходных данных. Кодировка, допустимая, — gzip и задается с помощью VaryByContentEncodings
атрибута директивы @ OutputCache
. Если веб-сервер, на котором размещена страница, не имеет динамического сжатия, выходной кэш не будет иметь кэшированный ответ для указанной кодировки содержимого.
<%@ 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 используется для указания, кэшируются ли динамически сжатые ответы. Кэширование динамически сжатых ответов означает, что стоимость сжатия возникает только один раз, во время первого запроса ресурса (или после перезапуска приложения) и истечения срока действия элемента кэша.
Свойство VaryByContentEncodings класса определяет, какие параметры заголовка HttpCachePolicy запроса ASP.NET используются для уникальной идентификации варианта ответа при наличии нескольких кэшированных ответов для ресурса. Это полезно, если ответ зависит от набора входных данных клиента, таких как заголовки, параметры или кодировки содержимого.
Класс HttpCacheVaryByContentEncodings не связан напрямую с заголовками управления кэшем HTTP. Однако это помогает убедиться, что ответ на клиент или прокси-сервер зависит от указанной кодировки содержимого. Задание кэша в зависимости от кодировки содержимого позволяет ASP.NET изменять ответ заголовка Accept-Encoding
. При обработке Accept-Encoding
запроса проверяется заголовок, и первая приемлемая кодировка определяется и используется для выполнения одного из следующих действий:
Если в списке VaryByContentEncodings также найдена соответствующая кодировка, а кэшированный ответ существует, отправляется кэшированный ответ.
Если соответствующая кодировка также найдена в VaryByContentEncodings списке, но кэшированный ответ не существует, создается и вставляется ответ в кэш.
Если соответствующая кодировка не найдена в VaryByContentEncodings списке, кэш выполняет поиск некодированного ответа, также называемого ответом удостоверения. Если найден ответ удостоверения, он отправляется. В противном случае создается и хранится новый некодированный ответ в кэше.
Дополнительные сведения о свойстве VaryByContentEncodings см. в статье RFC 2616: протокол передачи гипертекстов — HTTP/1.1, доступный на веб-сайте консорциума W3C. Полные сведения см. в разделе 14 "Определения полей заголовка".
Свойство можно задать VaryByContentEncodings с помощью @ OutputCache
директивы или путем добавления профиля в outputCacheProfile
элемент в файле Web.config.
Конструкторы
HttpCacheVaryByContentEncodings() |
Инициализирует новый экземпляр класса HttpCacheVaryByContentEncodings. |
Свойства
Item[String] |
Получает или задает значение, указывающее, изменяется ли кэш в соответствии с указанной кодировкой содержимого. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetContentEncodings() |
Возвращает массив значений, указывающий кодировки содержимого, используемые для изменения кэша. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
SetContentEncodings(String[]) |
Задает массив значений, указывающий кодировки содержимого, используемые для изменения кэша. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |