Språk

HttpCachePolicy.VaryByContentEncodings Egenskap

Definition

Hämtar listan över Content-Encoding rubriker som ska användas för att variera utdatacachen.

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

Egenskapsvärde

Ett objekt som anger vilka rubriker som Content-Encoding används för att välja det cachelagrade svaret.

Exempel

I följande exempel visas hur du aktiverar ett dynamiskt komprimerat svar för en sida som ska hanteras från utdatacachen. Den kodning som är acceptabel är "gzip" och anges med hjälp VaryByContentEncodings av attributet för @OutputCache-direktivet . Om den webbserver som är värd för sidan inte har dynamisk komprimering aktiverad har utdatacachen inte ett cachelagrat svar som baseras på den angivna innehållskodningen.

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

Kommentarer

Egenskapen VaryByContentEncodings returnerar en lista över Content-Encoding-huvuden som representerar komprimeringsscheman för att variera utdatacachen efter. Cachelagring av dynamiskt komprimerade svar innebär att kostnaden för komprimering endast uppstår en gång under den första begäran för resursen.

Egenskapen VaryByContentEncodings används med rubriken för Accept-Encoding en begäran för att avgöra hur cachelagrade svar ska hanteras för olika innehållskodningar som komprimeras dynamiskt. I Accept-Encoding-huvudet visas de kodningar som klienten kan dekomprimera.

När du anger att cachen ska variera beroende på innehållskodning kan svaret variera indirekt efter värdet i Accept-Encoding rubriken. När en begäran bearbetas Accept-Encoding kontrolleras huvudet och den första godkända kodningen identifieras och används för att utföra någon av följande åtgärder:

  • Om en matchande kodning hittas i VaryByContentEncodings listan och det finns ett cachelagrat svar skickas det cachelagrade svaret.

  • Om en matchande kodning hittas i VaryByContentEncodings listan men ett cachelagrat svar inte finns genereras ett svar och infogas i cacheminnet.

  • Om en matchande kodning inte hittas i VaryByContentEncodings listan söks cachen efter ett icke-kodat svar, även kallat identitetssvar. Om det icke-kodade svaret hittas skickas det. Annars genereras, skickas och lagras ett nytt icke-kodat svar i cacheminnet.

Mer information om VaryByContentEncodings egenskapen finns i "RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1", som finns på W3C-webbplatsen (World Wide Web Consortium). Information om innehållskodningar finns i avsnitt 14, "Rubrikfältdefinitioner".

Du kan ange VaryByContentEncodings egenskapen med hjälp VaryByContentEncodings av attributet för @ OutputCache-direktivet . Du kan också lägga till en cacheprofil i elementet outputCacheProfile i Web.config-filen.

VaryByContentEncodings introduceras i .NET Framework version 3.5. Mer information finns i Versioner och beroenden.

Gäller för

Se även