HttpCachePolicy.VaryByContentEncodings Proprietà

Definizione

Ottiene l'elenco di intestazioni Content-Encoding che verranno usate per variare la cache di output.Gets the list of Content-Encoding headers that will be used to vary the output cache.

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.An object that specifies which Content-Encoding headers are used to select the cached response.

Esempio

Nell'esempio seguente viene illustrato come abilitare una risposta dinamicamente compressa per una pagina da servire dalla cache di output.The following example shows how to enable a dynamically compressed response for a page to be served from the output cache. La codifica accettabile è "gzip" ed è impostata tramite l' VaryByContentEncodings attributo della direttiva @ OutputCache .The encoding that is acceptable is "gzip" and is set by using the VaryByContentEncodings attribute of the @ OutputCache directive. Se per il server Web che ospita la pagina non è abilitata la compressione dinamica, la cache di output non avrà una risposta memorizzata nella cache basata sulla codifica del contenuto specificata.If the Web server that is hosting the page does not have dynamic compression enabled, the output cache will not have a cached response that is based on the specified content encoding.

<%@ 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 del contenuto che rappresentano schemi di compressione per variare la cache di output in base a.The VaryByContentEncodings property returns a list of Content-Encoding headers that represent compression schemes to vary the output cache by. La memorizzazione nella cache di risposte compresse in modo dinamico significa che il costo della compressione viene generato una sola volta, durante la prima richiesta per la risorsa.Caching dynamically compressed responses means that the cost of compression is incurred only one time, during the first request for the resource.

La VaryByContentEncodings proprietà viene utilizzata con l' Accept-Encoding intestazione di una richiesta per determinare la modalità di gestione delle risposte memorizzate nella cache per diverse codifiche di contenuto che vengono compresse dinamicamente.The VaryByContentEncodings property is used with the Accept-Encoding header of a request to determine how to serve cached responses for different content encodings that are dynamically compressed. L'intestazione Accept-Encoding elenca le codifiche che il client può decomprimere.The Accept-Encoding header lists the encodings that the client can decompress.

Quando si imposta la cache in modo da variare in base alla codifica del contenuto, questa consente di variare indirettamente la risposta in base al valore nell' Accept-Encoding intestazione.When you set the cache to vary by content encoding, it lets the response vary indirectly by the value in the Accept-Encoding header. Quando una richiesta viene elaborata, l' Accept-Encoding intestazione viene controllata e la prima codifica accettabile viene identificata e utilizzata per eseguire una delle azioni seguenti:When a request is processed, the Accept-Encoding header is checked and the first acceptable encoding is identified and used to take one of the following actions:

  • Se viene individuata una codifica corrispondente nell' VaryByContentEncodings elenco ed esiste una risposta memorizzata nella cache, viene inviata la risposta memorizzata nella cache.If a matching encoding is found in the VaryByContentEncodings list and a cached response exists, the cached response is sent.

  • Se viene rilevata una codifica corrispondente nell' VaryByContentEncodings elenco ma non esiste una risposta memorizzata nella cache, viene generata e inserita una risposta nella cache.If a matching encoding is found in the VaryByContentEncodings list but a cached response does not exist, a response is generated and inserted into the cache.

  • Se non viene trovata una codifica corrispondente nell' VaryByContentEncodings elenco, viene eseguita la ricerca di una risposta non codificata, detta anche risposta di identità.If a matching encoding is not found in the VaryByContentEncodings list, the cache is searched for a non-encoded response, also referred to as the identity response. Se la risposta non codificata viene trovata, viene inviata.If the non-encoded response is found, it is sent. In caso contrario, viene generata una nuova risposta non codificata, inviata e archiviata nella cache.Otherwise, a new non-encoded response is generated, sent, and stored in the cache.

Per ulteriori informazioni sulla VaryByContentEncodings proprietà, vedere "RFC 2616: Hypertext Transfer Protocol--HTTP/1.1", disponibile nel sito Web World Wide Web Consortium (W3C).For more information about the VaryByContentEncodings property, see "RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1," which is available on the World Wide Web Consortium (W3C) Web site. Le informazioni sulle codifiche del contenuto sono riportate nella sezione 14 "definizioni dei campi di intestazione".Information about content encodings is in section 14, "Header Field Definitions."

È possibile impostare la VaryByContentEncodings proprietà utilizzando l' VaryByContentEncodings attributo della direttiva @ OutputCache .You can set the VaryByContentEncodings property by using the VaryByContentEncodings attribute of the @ OutputCache directive. È anche possibile aggiungere un profilo della cache all'elemento OutputCacheProfile nel file di Web.config.You can also add a cache profile to the outputCacheProfile element in the Web.config file.

VaryByContentEncodings è stato introdotto nella versione .NET Framework 3,5.VaryByContentEncodings is introduced in the .NET Framework version 3.5. Per altre informazioni, vedere Versioni e dipendenze.For more information, see Versions and Dependencies.

Si applica a

Vedi anche