HttpCachePolicy.VaryByContentEncodings Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém a lista de Content-Encoding cabeçalhos que serão usados para variar a cache de saída.
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 Propriedade
Um objeto que especifica quais Content-Encoding os cabeçalhos usados para selecionar a resposta em cache.
Exemplos
O exemplo seguinte mostra como ativar uma resposta dinamicamente comprimida para uma página a ser servida a partir da cache de saída. A codificação aceitável é "gzip" e é definida usando o VaryByContentEncodings atributo da diretiva @ OutputCache . Se o servidor Web que hospeda a página não tiver a compressão dinâmica ativada, a cache de saída não terá uma resposta em cache baseada na codificação de conteúdo 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>
Observações
A VaryByContentEncodings propriedade devolve uma lista de cabeçalhos Content-Encoding que representam esquemas de compressão para variar a cache de saída. Armazenar em cache respostas comprimidas dinamicamente significa que o custo da compressão é incorrido apenas uma vez, durante o primeiro pedido para o recurso.
A VaryByContentEncodings propriedade é usada com o Accept-Encoding cabeçalho de um pedido para determinar como servir respostas em cache para diferentes codificações de conteúdo que são comprimidas dinamicamente. O cabeçalho Accept-Encoding lista as codificações que o cliente pode descomprimir.
Quando defines a cache para variar por codificação de conteúdo, permite que a resposta varie indiretamente pelo valor no Accept-Encoding cabeçalho. Quando um pedido é processado, o Accept-Encoding cabeçalho é verificado e a primeira codificação aceitável é identificada e usada para realizar uma das seguintes ações:
Se for encontrada uma codificação correspondente na VaryByContentEncodings lista e existir uma resposta em cache, a resposta em cache é enviada.
Se for encontrada uma codificação correspondente na VaryByContentEncodings lista mas não existir uma resposta em cache, uma resposta é gerada e inserida na cache.
Se não for encontrada uma codificação correspondente na VaryByContentEncodings lista, procura-se na cache uma resposta não codificada, também referida como resposta de identidade. Se a resposta não codificada for encontrada, é enviada. Caso contrário, uma nova resposta não codificada é gerada, enviada e armazenada na cache.
Para mais informações sobre a VaryByContentEncodings propriedade, consulte "RFC 2616: Protocolo de Transferência de Hipertexto -- HTTP/1.1", disponível no site do World Wide Web Consortium (W3C). Informação sobre codificações de conteúdo encontra-se na secção 14, "Definições de Campos de Cabeçalho."
Pode definir a VaryByContentEncodings propriedade usando o VaryByContentEncodings atributo da diretiva @ OutputCache . Também pode adicionar um perfil de cache ao elemento outputCacheProfile no ficheiro Web.config.
VaryByContentEncodings é introduzido na versão 3.5 do .NET Framework. Para mais informações, consulte Versões e Dependências.