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à

HttpCacheVaryByContentEncodings

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 Content-Encoding che rappresentano schemi di compressione per variare la cache di output. Caching risposte compresse in modo dinamico significa che il costo della compressione viene addebitato una sola volta, durante la prima richiesta per la risorsa.

La VaryByContentEncodings proprietà viene utilizzata con l'intestazione Accept-Encoding di una richiesta per determinare come gestire le risposte memorizzate nella cache per codifiche di contenuto diverse compresse in modo dinamico. L'intestazione Accept-Encoding elenca le codifiche 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 Accept-Encoding viene controllata e la 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 e inserita una risposta nella cache.

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

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 codifiche del contenuto sono disponibili nella sezione 14"Header Field Definitions".

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

VaryByContentEncodingsè stato introdotto nella .NET Framework versione 3.5. Per altre informazioni, vedere Versioni e dipendenze.

Si applica a

Vedi anche