HttpCachePolicy.VaryByContentEncodings Vlastnost

Definice

Získá seznam Content-Encoding hlaviček, které se použijí k různým výstupním 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

HttpCacheVaryByContentEncodings

Objekt, který určuje, která Content-Encoding záhlaví se používají 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 má 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, výstupní mezipaměť nebude mít 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 kódování obsahu, které představují schémata komprese, aby se výstupní mezipaměť lišit. Ukládání do mezipaměti dynamicky komprimované odpovědi znamenají, že náklady na kompresi jsou vynaloženy 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 komprimovány. Hlavička Accept-Encoding uvádí kódování, které může klient dekomprimovat.

Když nastavíte mezipaměť tak, aby se liší podle kódování obsahu, může se odpověď nepřímo lišit podle hodnoty v Accept-Encoding hlavičce. 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 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ěď označovaná také 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 jsou uvedené v části 14 "Header Field Definitions" (Definice polí záhlaví).

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

VaryByContentEncodingsje zaveden v .NET Framework verze 3.5. Další informace najdete v tématu Verze a závislosti.

Platí pro

Viz také