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 que es 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 content-Encoding que representan esquemas de compresión para variar la memoria caché de salida por. 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.
Al establecer la memoria caché para variar 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, se busca en la memoria caché 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.
VaryByContentEncodingsse introduce en la versión 3.5 de .NET Framework. Para más información, vea Versiones y dependencias.