Udostępnij za pośrednictwem


HttpCachePolicy.VaryByContentEncodings Właściwość

Definicja

Pobiera listę nagłówków Content-Encoding , które będą używane do różnić pamięć podręczną danych wyjściowych.

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 określający, które Content-Encoding nagłówki są używane do wybierania buforowanej odpowiedzi.

Przykłady

W poniższym przykładzie pokazano, jak umożliwić dynamiczne skompresowanie odpowiedzi dla strony, która ma być obsługiwana z pamięci podręcznej danych wyjściowych. 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 kompresji dynamicznej, 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 zmieniać pamięć podręczną danych wyjściowych według. 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 wyświetla kodowanie, które klient może dekompresować.

Po ustawieniu pamięci podręcznej 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 pasujące kodowanie i istnieje buforowana odpowiedź, zostanie wysłana buforowana odpowiedź.

  • Jeśli na liście znajduje VaryByContentEncodings się zgodne kodowanie, ale buforowana odpowiedź nie istnieje, 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ą tożsamości. 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 sieci Web 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.

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

Dotyczy

Zobacz też