HttpCachePolicy.VaryByContentEncodings Właściwość

Definicja

Pobiera listę nagłówków Content-Encoding , które będą używane do zmieniania wyjściowej pamięci podręcznej.

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

Wartość właściwości

Obiekt, który określa, które Content-Encoding nagłówki są używane do wybierania buforowanej odpowiedzi.

Przykłady

W poniższym przykładzie pokazano, jak włączyć dynamicznie skompresowaną odpowiedź dla strony, która ma być obsługiwana z wyjściowej pamięci podręcznej. Kodowanie, które jest dopuszczalne, to "gzip" i jest ustawiane przy użyciu VaryByContentEncodings atrybutu dyrektywy @ OutputCache . Jeśli serwer sieci Web hostujący stronę nie ma włączonej dynamicznej kompresji, pamięć podręczna danych wyjściowych nie będzie mieć buforowanej odpowiedzi opartej na określonym kodowaniu zawartości.

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

Uwagi

Właściwość VaryByContentEncodings zwraca listę nagłówków content-encoding, które reprezentują schematy kompresji, aby zmienić pamięć podręczną danych wyjściowych. Buforowanie dynamicznie skompresowanych odpowiedzi oznacza, że koszt kompresji jest naliczany tylko raz podczas pierwszego żądania zasobu.

Właściwość VaryByContentEncodings jest używana z Accept-Encoding nagłówkiem żądania w celu określenia sposobu obsługi buforowanych odpowiedzi dla różnych kodowań zawartości, które są dynamicznie kompresowane. Nagłówek Accept-Encoding zawiera listę kodowań, które klient może dekompresować.

Po ustawieniu pamięci podręcznej w celu różnić się w zależności od kodowania zawartości, może ona różnić się pośrednio od wartości w nagłówku Accept-Encoding . Po przetworzeniu Accept-Encoding żądania nagłówek jest sprawdzany, a pierwsze dopuszczalne kodowanie jest identyfikowane i używane do wykonywania jednej z następujących akcji:

  • Jeśli na liście zostanie znalezione VaryByContentEncodings zgodne kodowanie i istnieje buforowana odpowiedź, zostanie wysłana buforowana odpowiedź.

  • Jeśli na liście znajduje się VaryByContentEncodings zgodne kodowanie, ale nie istnieje buforowana odpowiedź, odpowiedź zostanie wygenerowana i wstawiona do pamięci podręcznej.

  • Jeśli na liście nie znaleziono VaryByContentEncodings pasującego kodowania, pamięć podręczna jest wyszukiwana jako niekodowana odpowiedź, nazywana również odpowiedzią na tożsamość. Jeśli zostanie znaleziona niekodowana odpowiedź, zostanie wysłana. W przeciwnym razie nowa niekodowana odpowiedź jest generowana, wysyłana i przechowywana w pamięci podręcznej.

Aby uzyskać więcej informacji na temat VaryByContentEncodings właściwości, zobacz "RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1", który jest dostępny w witrynie internetowej World Wide Web Consortium (W3C). Informacje o kodowaniu zawartości można znaleźć w sekcji 14 "Definicje pól nagłówka".

Właściwość można ustawić VaryByContentEncodings przy użyciu VaryByContentEncodings atrybutu dyrektywy @ OutputCache . Profil pamięci podręcznej można również dodać do elementu outputCacheProfile w pliku Web.config.

VaryByContentEncodingsjest wprowadzana w .NET Framework w wersji 3.5. Aby uzyskać więcej informacji, zobacz Wersje i zależności.

Dotyczy

Zobacz też