HttpCachePolicy.VaryByContentEncodings Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene la lista de encabezados Content-Encoding
que se usará para cambiar la caché de resultados.
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
Valor de propiedad
Objeto que especifica qué encabezados Content-Encoding
se usan para seleccionar la respuesta almacenada en caché.
Ejemplos
En el ejemplo siguiente se muestra cómo habilitar una respuesta comprimida dinámicamente para que una página se sirva desde la memoria caché de salida. La codificación aceptable es "gzip" y se establece mediante el VaryByContentEncodings
atributo de la directiva @ OutputCache . Si el servidor web que hospeda la página no tiene habilitada la compresión dinámica, la caché de salida no tendrá una respuesta almacenada en caché basada en la codificación de contenido especificada.
<%@ 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>
Comentarios
La VaryByContentEncodings propiedad devuelve una lista de encabezados de codificación de contenido que representan esquemas de compresión para variar la memoria caché de salida. El almacenamiento en caché de respuestas comprimidas dinámicamente significa que el costo de compresión se incurre solo una vez, durante la primera solicitud del recurso.
La VaryByContentEncodings propiedad se usa con el Accept-Encoding
encabezado de una solicitud para determinar cómo atender las respuestas almacenadas en caché para diferentes codificaciones de contenido que se comprimen dinámicamente. El encabezado Accept-Encoding enumera las codificaciones que el cliente puede descomprimir.
Cuando se establece que la memoria caché varíe según la codificación de contenido, permite que la respuesta varía indirectamente por el valor del Accept-Encoding
encabezado. Cuando se procesa una solicitud, se comprueba el Accept-Encoding
encabezado y se identifica la primera codificación aceptable y se usa para realizar una de las siguientes acciones:
Si se encuentra una codificación coincidente en la VaryByContentEncodings lista y existe una respuesta almacenada en caché, se envía la respuesta almacenada en caché.
Si se encuentra una codificación coincidente en la VaryByContentEncodings lista, pero no existe una respuesta almacenada en caché, se genera e inserta una respuesta en la memoria caché.
Si no se encuentra una codificación coincidente en la VaryByContentEncodings lista, la memoria caché busca una respuesta no codificada, también denominada respuesta de identidad. Si se encuentra la respuesta no codificada, se envía. De lo contrario, se genera, envía y almacena una nueva respuesta no codificada en la memoria caché.
Para obtener más información sobre la VaryByContentEncodings propiedad, vea "RFC 2616: Protocolo de transferencia de hipertexto -- HTTP/1.1", que está disponible en el sitio web de World Wide Web Consortium (W3C). La información sobre las codificaciones de contenido se encuentra en la sección 14, "Definiciones de campo de encabezado".
Puede establecer la VaryByContentEncodings propiedad mediante el VaryByContentEncodings
atributo de la directiva @ OutputCache . También puede agregar un perfil de caché al elemento outputCacheProfile en el archivo Web.config.
VaryByContentEncodings se presenta en la versión 3.5 de .NET Framework. Para más información, vea Versiones y dependencias.