Condividi tramite


HttpCacheVaryByContentEncodings Classe

Definizione

Fornisce un modo indipendente dai tipi per impostare la proprietà VaryByContentEncodings della classe HttpCachePolicy.

public ref class HttpCacheVaryByContentEncodings sealed
public sealed class HttpCacheVaryByContentEncodings
type HttpCacheVaryByContentEncodings = class
Public NotInheritable Class HttpCacheVaryByContentEncodings
Ereditarietà
HttpCacheVaryByContentEncodings

Esempio

Nell'esempio seguente viene illustrato come abilitare una risposta compressa dinamicamente che può essere servita dalla cache di output. La codifica accettabile è "gzip" e viene impostata usando l'attributo VaryByContentEncodings della @ OutputCache direttiva . 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 per la 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à viene utilizzata per specificare se le risposte compresse in modo dinamico vengono memorizzate nella cache. Caching risposte compresse dinamicamente significa che il costo della compressione viene addebitato una sola volta, durante la prima richiesta per la risorsa (o dopo il riavvio di un'applicazione) e alla scadenza dell'elemento della cache.

La VaryByContentEncodings proprietà della HttpCachePolicy classe identifica i parametri di intestazione della richiesta ASP.NET usati per identificare in modo univoco una variante della risposta se sono presenti più risposte memorizzate nella cache per una risorsa. Ciò è utile quando una risposta dipende da un set di input client, ad esempio intestazioni, parametri o codifiche del contenuto.

La HttpCacheVaryByContentEncodings classe non è direttamente correlata alle intestazioni del controllo cache HTTP. Tuttavia, consente di assicurarsi che una risposta a un client o a un proxy varia in base alla codifica del contenuto specificata. L'impostazione della cache per variare in base alla codifica del contenuto consente di ASP.NET di variare la risposta in base all'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 è presente anche una codifica corrispondente nell'elenco VaryByContentEncodings e esiste una risposta memorizzata nella cache, viene inviata la risposta memorizzata nella cache.

  • Se nell'elenco VaryByContentEncodings è presente anche 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 di identità, viene inviata. In caso contrario, viene generata una nuova risposta non codificata 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). Per informazioni dettagliate, vedere la sezione 14, "Header Field Definitions".

È possibile impostare la VaryByContentEncodings proprietà usando la @ OutputCache direttiva o aggiungendo un profilo all'elemento outputCacheProfile nel file Web.config.

Costruttori

HttpCacheVaryByContentEncodings()

Inizializza una nuova istanza della classe HttpCacheVaryByContentEncodings.

Proprietà

Item[String]

Ottiene o imposta un valore che indica se la cache varia in base alla codifica del contenuto specificata.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetContentEncodings()

Ottiene una matrice di valori che specificano le codifiche del contenuto da usare per variare la cache.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
SetContentEncodings(String[])

Imposta una matrice di valori che specificano le codifiche del contenuto da usare per variare la cache.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche