Sdílet prostřednictvím


HttpCachePolicy.VaryByContentEncodings Vlastnost

Definice

Získá seznam Content-Encoding hlaviček, které se použijí 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 záhlaví 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á se bude obsluhovat z výstupní mezipaměti. Kódování, které je přijatelné, je "gzip" a je nastaveno pomocí VaryByContentEncodings atributu @ OutputCache direktivy. Pokud webový server, který je hostitelem stránky, nemá povolenou dynamickou kompresi, nebude výstupní mezipaměť obsahovat odpověď uloženou v mezipaměti, která je založená 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ček Content-Encoding, které představují schémata komprese pro různé výstupní mezipaměti. 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 VaryByContentEncodings se používá s Accept-Encoding hlavičkou požadavku k určení, jak obsluhovat odpovědi uložené v mezipaměti pro různé kódování obsahu, které jsou dynamicky komprimované. Hlavička Accept-Encoding uvádí kódování, které klient může dekompresi dekomprimovat.

Když nastavíte mezipaměť tak, aby se liší podle kódování obsahu, umožní odpověď nepřímo lišit podle hodnoty v Accept-Encoding hlavičce. Při zpracování požadavku se zkontroluje Accept-Encoding hlavička a první přijatelné kódování se identifikuje a použije se 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 VaryByContentEncodings mezipaměti, odešle se odpověď uložená v mezipaměti.

  • Pokud se v VaryByContentEncodings seznamu najde odpovídající kódování, ale odpověď uložená v mezipaměti neexistuje, 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ěď, která se také označuje jako odpověď identity. Pokud se najde nekódovaná odpověď, odešle se. V opačném případě se vygeneruje, odešle 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). Informace o kódování obsahu najdete v části 14 Definice polí záhlaví.

Vlastnost můžete nastavit VaryByContentEncodings pomocí VaryByContentEncodings atributu @ OutputCache direktivy. Do elementu outputCacheProfile v souboru Web.config můžete také přidat profil mezipaměti.

VaryByContentEncodings je zaveden v rozhraní .NET Framework verze 3.5. Další informace naleznete v tématu Verze a závislosti.

Platí pro

Viz také