HttpCachePolicy.VaryByContentEncodings Propriedade

Definição

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

HttpCacheVaryByContentEncodings

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 de Codificação de Conteúdo que representam esquemas de compactação para variar o cache de saída. Caching respostas compactadas dinamicamente significa que o custo da compactação é incorrido apenas uma vez, durante a primeira solicitação do 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 uma resposta armazenada em cache existir, a resposta armazenada em cache será enviada.

  • Se uma codificação correspondente for encontrada na lista, mas uma resposta armazenada em VaryByContentEncodings 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 a 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, consulte "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.

Aplica-se a

Confira também