HttpCacheVaryByContentEncodings Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje způsob, jak nastavit VaryByContentEncodings vlastnost HttpCachePolicy třídy bezpečným způsobem.
public ref class HttpCacheVaryByContentEncodings sealed
public sealed class HttpCacheVaryByContentEncodings
type HttpCacheVaryByContentEncodings = class
Public NotInheritable Class HttpCacheVaryByContentEncodings
- Dědičnost
-
HttpCacheVaryByContentEncodings
Příklady
Následující příklad ukazuje, jak povolit dynamicky komprimovanou odpověď, která se dá obsluhovat z výstupní mezipaměti. Kódování, které je přijatelné, je "gzip" a je nastaveno pomocí VaryByContentEncodings
atributu direktivy @ OutputCache
. Pokud webový server, který je hostitelem stránky, nemá povolenou dynamickou kompresi, výstupní mezipaměť nebude mít odpověď uloženou v mezipaměti pro zadané kódování obsahu.
<%@ 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>
Poznámky
Vlastnost VaryByContentEncodings slouží k určení, zda jsou dynamicky komprimované odpovědi uloženy do mezipaměti. Ukládání do mezipaměti dynamicky komprimované odpovědi znamenají, že náklady na kompresi se účtují jenom jednou, během prvního požadavku na prostředek (nebo po restartování aplikace) a po vypršení platnosti položky mezipaměti.
Vlastnost VaryByContentEncodings HttpCachePolicy třídy určuje, které parametry hlavičky požadavku ASP.NET používá k jedinečné identifikaci varianty odpovědi, pokud pro prostředek existuje více odpovědí uložených v mezipaměti. To je užitečné, když odpověď závisí na sadě vstupů klienta, jako jsou hlavičky, parametry nebo kódování obsahu.
Třída HttpCacheVaryByContentEncodings přímo nesouvisí s hlavičkami řízení mezipaměti HTTP. Pomáhá ale zajistit, aby odpověď na klienta nebo proxy server byla různá podle zadaného kódování obsahu. Nastavení mezipaměti tak, aby se liší podle kódování obsahu, umožňuje ASP.NET měnit odpověď podle hlavičkyAccept-Encoding
. Při zpracování Accept-Encoding
požadavku se zkontroluje hlavička a první přijatelné kódování se identifikuje a používá se k provedení jedné z následujících akcí:
Pokud se v VaryByContentEncodings seznamu najde odpovídající kódování a existuje odpověď uložená v mezipaměti, odešle se odpověď uložená v mezipaměti.
Pokud se v VaryByContentEncodings seznamu nachází také odpovídající kódování, ale neexistuje odpověď uložená v mezipaměti, vygeneruje se odpověď a vloží se do mezipaměti.
Pokud se v VaryByContentEncodings seznamu nenajde odpovídající kódování, vyhledá se v mezipaměti nekódovaná odpověď označovaná také jako odpověď identity. Pokud se najde odpověď identity, odešle se. V opačném případě se vygeneruje a uloží nová nekódovaná odpověď do mezipaměti.
Další informace o VaryByContentEncodings vlastnosti naleznete v dokumentu RFC 2616: Hypertext Transfer Protocol – HTTP/1.1, který je k dispozici na webu W3C (World Wide Web Consortium). Úplné podrobnosti najdete v části 14" "Definice polí záhlaví".
Vlastnost můžete nastavit VaryByContentEncodings pomocí @ OutputCache
direktivy nebo přidáním profilu do elementu outputCacheProfile
v souboru Web.config.
Konstruktory
HttpCacheVaryByContentEncodings() |
Inicializuje novou instanci HttpCacheVaryByContentEncodings třídy. |
Vlastnosti
Item[String] |
Získá nebo nastaví hodnotu, která označuje, jestli se mezipaměť liší podle zadaného kódování obsahu. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetContentEncodings() |
Získá pole hodnot, které určují kódování obsahu, které se mají použít pro různé mezipaměti. |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
SetContentEncodings(String[]) |
Nastaví pole hodnot, které určují kódování obsahu, které se mají použít pro různé mezipaměti. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |