HttpCachePolicy.VaryByContentEncodings Eigenschap

Definitie

Hiermee haalt u de lijst Content-Encoding met headers op die worden gebruikt om de uitvoercache te variëren.

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

Waarde van eigenschap

Een object dat aangeeft welke Content-Encoding headers worden gebruikt om het antwoord in de cache te selecteren.

Voorbeelden

In het volgende voorbeeld ziet u hoe u een dynamisch gecomprimeerd antwoord inschakelt dat een pagina wordt geleverd vanuit de uitvoercache. De codering die acceptabel is, is 'gzip' en wordt ingesteld met behulp van het VaryByContentEncodings kenmerk van de @OutputCache-instructie . Als voor de webserver die als host fungeert voor de pagina geen dynamische compressie is ingeschakeld, heeft de uitvoercache geen antwoord in de cache dat is gebaseerd op de opgegeven inhoudscodering.

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

Opmerkingen

De VaryByContentEncodings eigenschap retourneert een lijst met inhoudscoderingsheaders die compressieschema's vertegenwoordigen om de uitvoercache te variëren. Dynamisch gecomprimeerde reacties in de cache opslaan betekent dat de kosten van compressie slechts één keer worden gemaakt tijdens de eerste aanvraag voor de resource.

De VaryByContentEncodings eigenschap wordt gebruikt met de header van een aanvraag om te bepalen hoe reacties in de Accept-Encoding cache worden verwerkt voor verschillende inhoudscoderingen die dynamisch worden gecomprimeerd. De Accept-Encoding header bevat de coderingen die de client kan decomprimeren.

Wanneer u de cache instelt om te variëren op basis van inhoudscodering, kan het antwoord indirect variëren op basis van de waarde in de Accept-Encoding header. Wanneer een aanvraag wordt verwerkt, wordt de Accept-Encoding header gecontroleerd en wordt de eerste acceptabele codering geïdentificeerd en gebruikt om een van de volgende acties uit te voeren:

  • Als er een overeenkomende codering wordt gevonden in de lijst en er een antwoord in de VaryByContentEncodings cache bestaat, wordt het antwoord in de cache verzonden.

  • Als er een overeenkomende codering wordt gevonden in de lijst, maar er geen antwoord in de VaryByContentEncodings cache bestaat, wordt er een antwoord gegenereerd en ingevoegd in de cache.

  • Als een overeenkomende codering niet in de VaryByContentEncodings lijst wordt gevonden, wordt de cache gezocht naar een niet-gecodeerd antwoord, ook wel het identiteitsantwoord genoemd. Als het niet-gecodeerde antwoord wordt gevonden, wordt het verzonden. Anders wordt er een nieuw niet-gecodeerd antwoord gegenereerd, verzonden en opgeslagen in de cache.

Zie 'RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1', dat beschikbaar is op de VaryByContentEncodings voor meer informatie over de eigenschap. Informatie over inhoudscoderingen vindt u in sectie 14, 'Velddefinities voor koptekst'.

U kunt de VaryByContentEncodings eigenschap instellen met behulp van het VaryByContentEncodings kenmerk van de @OutputCache-instructie . U kunt ook een cacheprofiel toevoegen aan het element outputCacheProfile in het Web.config-bestand.

VaryByContentEncodings wordt geïntroduceerd in de .NET Framework versie 3.5. Zie Versies en afhankelijkheden voor meer informatie.

Van toepassing op

Zie ook