Condividi tramite


HttpCachePolicy.VaryByContentEncodings Proprietà

Definizione

Ottiene l'elenco di intestazioni Content-Encoding che verranno usate per variare la cache di output.

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

Valore della proprietà

Oggetto che specifica le intestazioni Content-Encoding usate per selezionare la risposta memorizzata nella cache.

Esempio

Nell'esempio seguente viene illustrato come abilitare una risposta compressa dinamicamente per la gestione di una pagina dalla cache di output. La codifica accettabile è "gzip" e viene impostata usando l'attributo VaryByContentEncodings della direttiva @ OutputCache . Se il server Web che ospita la pagina non dispone di compressione dinamica abilitata, la cache di output non avrà una risposta memorizzata nella cache basata sulla codifica del contenuto specificata.

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

Commenti

La VaryByContentEncodings proprietà restituisce un elenco di intestazioni di codifica contenuto che rappresentano schemi di compressione per variare la cache di output in base. La memorizzazione nella cache delle risposte compresse in modo dinamico significa che il costo della compressione viene sostenuto solo una volta, durante la prima richiesta per la risorsa.

La VaryByContentEncodings proprietà viene usata con l'intestazione Accept-Encoding di una richiesta per determinare come gestire le risposte memorizzate nella cache per le diverse codifica di contenuto compresse in modo dinamico. L'intestazione Accept-Encoding elenca le codifica che il client può decomprimere.

Quando si imposta la cache per variare in base alla codifica del contenuto, la risposta varia indirettamente in base al valore nell'intestazione Accept-Encoding . Quando viene elaborata una richiesta, l'intestazione viene controllata e la Accept-Encoding prima codifica accettabile viene identificata e usata per eseguire una delle azioni seguenti:

  • Se nell'elenco VaryByContentEncodings viene trovata una codifica corrispondente e esiste una risposta memorizzata nella cache, viene inviata la risposta memorizzata nella cache.

  • Se nell'elenco VaryByContentEncodings viene trovata una codifica corrispondente, ma non esiste una risposta memorizzata nella cache, viene generata una risposta e inserita nella cache.

  • Se nell'elenco VaryByContentEncodings non viene trovata una codifica corrispondente, la cache viene cercata una risposta non codificata, definita anche risposta di identità. Se viene trovata la risposta non codificata, viene inviata. In caso contrario, viene generata una nuova risposta non codificata, inviata e archiviata nella cache.

Per altre informazioni sulla VaryByContentEncodings proprietà, vedere "RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1", disponibile nel sito Web World Wide Web Consortium (W3C). Le informazioni sulle codifica del contenuto si trovano nella sezione 14, "Definizioni campo intestazione".

È possibile impostare la VaryByContentEncodings proprietà usando l'attributo VaryByContentEncodings della direttiva @ OutputCache . È anche possibile aggiungere un profilo cache all'elemento outputCacheProfile nel file Web.config.

VaryByContentEncodings viene introdotto in .NET Framework versione 3.5. Per altre informazioni, vedere Versioni e dipendenze.

Si applica a

Vedi anche