HttpCachePolicy.VaryByContentEncodings Vlastnost
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í.
Získá seznam Content-Encoding
hlaviček, které budou použity pro různé výstupní mezipaměti.
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
Hodnota vlastnosti
Objekt, který určuje, které Content-Encoding
hlavičky se použijí k výběru odpovědi uložené v mezipaměti.
Příklady
Následující příklad ukazuje, jak povolit dynamicky komprimovanou odpověď pro stránku, která má být obsluhována z výstupní mezipaměti. Přijatelné kódování je "gzip" a je nastaven pomocí atributu VaryByContentEncodings
@ OutputCache direktivy . Pokud webový server hostující stránku nemá povolenou dynamickou kompresi, výstupní mezipaměť nebude obsahovat odpověď uloženou v mezipaměti, která je založena na zadaném 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 vrátí seznam hlavičky content-encoding, které představují schémata komprese pro různé výstupní mezipaměti podle. Ukládání dynamicky komprimovaných odpovědí do mezipaměti znamená, že náklady na kompresi vznikají pouze jednou během prvního požadavku na prostředek.
Vlastnost se VaryByContentEncodings používá s Accept-Encoding
hlavičkou požadavku k určení způsobu obsluhy odpovědí uložených v mezipaměti pro různá dynamicky komprimovaná kódování obsahu. V hlavičce Accept-Encoding jsou uvedena kódování, která může klient dekomprimovat.
Když nastavíte mezipaměť tak, aby se lišily podle kódování obsahu, umožní to nepřímo měnit odpověď podle hodnoty v hlavičce Accept-Encoding
. Při zpracování požadavku se zkontroluje hlavička Accept-Encoding
a identifikuje se první přijatelné kódování, které se použije k provedení jedné z následujících akcí:
Pokud se v seznamu najde odpovídající kódování a existuje odpověď uložená v mezipaměti, odešle se odpověď uložená v VaryByContentEncodings mezipaměti.
Pokud se v seznamu najde odpovídající kódování, ale odpověď uložená v VaryByContentEncodings mezipaměti neexistuje, vygeneruje se odpověď a vloží se do mezipaměti.
Pokud se v seznamu nenajde odpovídající kódování, vyhledá se v VaryByContentEncodings mezipaměti nekódovaná odpověď, která se označuje také jako odpověď identity. Pokud se najde nezakódovaná odpověď, odešle se. V opačném případě se vygeneruje, odešle a uloží nová nekódovaná odpověď v mezipaměti.
Další informace o VaryByContentEncodings vlastnosti naleznete v dokumentu RFC 2616: Protokol HTTP/1.1, který je k dispozici na webu konsorcia W3C (World Wide Web Consortium). Informace o kódování obsahu najdete v oddílu 14 , "Definice polí hlaviček".
Vlastnost můžete nastavit VaryByContentEncodings pomocí atributu VaryByContentEncodings
@ OutputCache direktivy . Profil mezipaměti můžete také přidat do elementu outputCacheProfile v souboru Web.config.
VaryByContentEncodings je zaveden v rozhraní .NET Framework verze 3.5. Další informace najdete v tématu Verze a závislosti.