HttpCachePolicy.VaryByContentEncodings Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém a lista de todos os cabeçalhos Content-Encoding
que serão usados para variar o 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 da propriedade
Um objeto que especifica quais Content-Encoding
cabeçalhos são usados para selecionar a resposta armazenada em cache.
Exemplos
O exemplo a seguir mostra como habilitar uma resposta compactada dinamicamente para que uma página seja atendida do cache de saída. A codificação aceitável é "gzip" e é definida usando o VaryByContentEncodings
atributo da diretiva @ OutputCache . Se o servidor Web que está hospedando a página não tiver a compactação dinâmica habilitada, o cache de saída não terá uma resposta armazenada 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>
Comentários
A VaryByContentEncodings propriedade retorna uma lista de cabeçalhos content-encoding que representam esquemas de compactação para variar o cache de saída. Armazenar em cache respostas compactadas dinamicamente significa que o custo da compactação é incorrido apenas uma vez, durante a primeira solicitação para o recurso.
A VaryByContentEncodings propriedade é usada com o Accept-Encoding
cabeçalho de uma solicitação para determinar como fornecer respostas armazenadas em cache para diferentes codificações de conteúdo que são compactadas dinamicamente. O cabeçalho Accept-Encoding lista as codificações que o cliente pode descompactar.
Quando você define o cache para variar de acordo com a codificação de conteúdo, ele permite que a resposta varie indiretamente pelo valor no Accept-Encoding
cabeçalho. Quando uma solicitação é processada, o Accept-Encoding
cabeçalho é verificado e a primeira codificação aceitável é identificada e usada para executar uma das seguintes ações:
Se uma codificação correspondente for encontrada na VaryByContentEncodings lista e existir uma resposta armazenada em cache, a resposta armazenada em cache será enviada.
Se uma codificação correspondente for encontrada na VaryByContentEncodings lista, mas uma resposta armazenada em cache não existir, uma resposta será gerada e inserida no cache.
Se uma codificação correspondente não for encontrada na VaryByContentEncodings lista, o cache será pesquisado por uma resposta não codificada, também conhecida como resposta de identidade. Se a resposta não codificada for encontrada, ela será enviada. Caso contrário, uma nova resposta não codificada será gerada, enviada e armazenada no cache.
Para obter mais informações sobre a VaryByContentEncodings propriedade, confira "RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1", que está disponível no site do W3C (World Wide Web Consortium). As informações sobre codificações de conteúdo estão na seção 14, "Definições de campo de cabeçalho".
Você pode definir a VaryByContentEncodings propriedade usando o VaryByContentEncodings
atributo da diretiva @ OutputCache . Você também pode adicionar um perfil de cache ao elemento outputCacheProfile no arquivo Web.config.
VaryByContentEncodings é introduzido no .NET Framework versão 3.5. Para saber mais, confira Versões e dependências.