HttpCachePolicy.VaryByContentEncodings Eigenschaft

Definition

Ruft die Liste der Content-Encoding-Header ab, mit denen der Ausgabecache variiert wird.

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

Eigenschaftswert

Ein Objekt, das angibt, welche Content-Encoding-Header zum Auswählen der zwischengespeicherten Antwort verwendet werden.

Beispiele

Das folgende Beispiel zeigt, wie sie eine dynamisch komprimierte Antwort für eine Seite aktivieren, die aus dem Ausgabecache bereitgestellt werden kann. Die zulässige Codierung ist "gzip" und wird mithilfe des VaryByContentEncodings Attributs der @ OutputCache-Direktive festgelegt. Wenn auf dem Webserver, auf dem die Seite gehostet wird, die dynamische Komprimierung nicht aktiviert ist, verfügt der Ausgabecache nicht über eine zwischengespeicherte Antwort, die auf der angegebenen Inhaltscodierung basiert.

<%@ 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>

Hinweise

Die VaryByContentEncodings Eigenschaft gibt eine Liste von Inhaltscodierungsheadern zurück, die Komprimierungsschemas darstellen, um den Ausgabecache nach zu variieren. Zwischenspeichern dynamisch komprimierter Antworten bedeutet, dass die Komprimierungskosten nur einmal anfallen, während der ersten Anforderung für die Ressource.

Die VaryByContentEncodings -Eigenschaft wird mit dem Accept-Encoding Header einer Anforderung verwendet, um zu bestimmen, wie zwischengespeicherte Antworten für unterschiedliche Inhaltscodierungen bereitgestellt werden, die dynamisch komprimiert werden. Der Accept-Encoding-Header listet die Codierungen auf, die der Client dekomprimieren kann.

Wenn Sie festlegen, dass der Cache je nach Inhaltscodierung variiert, kann die Antwort indirekt durch den Wert im Accept-Encoding Header variieren. Wenn eine Anforderung verarbeitet wird, wird der Accept-Encoding Header überprüft, und die erste zulässige Codierung wird identifiziert und verwendet, um eine der folgenden Aktionen auszuführen:

  • Wenn eine übereinstimmende Codierung in der VaryByContentEncodings Liste gefunden wird und eine zwischengespeicherte Antwort vorhanden ist, wird die zwischengespeicherte Antwort gesendet.

  • Wenn eine übereinstimmende Codierung in der VaryByContentEncodings Liste gefunden wird, aber keine zwischengespeicherte Antwort vorhanden ist, wird eine Antwort generiert und in den Cache eingefügt.

  • Wenn keine übereinstimmende Codierung in der VaryByContentEncodings Liste gefunden wird, wird im Cache nach einer nicht codierten Antwort gesucht, die auch als Identitätsantwort bezeichnet wird. Wenn die nicht codierte Antwort gefunden wird, wird sie gesendet. Andernfalls wird eine neue nicht codierte Antwort generiert, gesendet und im Cache gespeichert.

Weitere Informationen zur VaryByContentEncodings Eigenschaft finden Sie unter RFC 2616: Hypertext Transfer Protocol - HTTP/1.1, das auf der W3C-Website (World Wide Web Consortium) verfügbar ist. Informationen zu Inhaltscodierungen finden Sie in Abschnitt 14, "Headerfelddefinitionen".

Sie können die VaryByContentEncodings -Eigenschaft mithilfe des Attributs VaryByContentEncodings der @ OutputCache-Direktive festlegen. Sie können dem outputCacheProfile-Element in der Web.config-Datei auch ein Cacheprofil hinzufügen.

VaryByContentEncodingswird in der .NET Framework Version 3.5 eingeführt. Weitere Informationen finden Sie unter Versionen und Abhängigkeiten.

Gilt für:

Weitere Informationen