Como gerenciar a expiração do conteúdo da Web na Rede de Distribuição de Conteúdo do Microsoft Azure
Importante
A CDN do Azure Standard (clássica) será desativada em 30 de setembro de 2027. Para evitar qualquer interrupção de serviço, é importante migrar seus perfis da CDN do Azure Standard (clássica) para a camada Azure Front Door Standard ou Premium até 30 de setembro de 2027. Para obter mais informações, confira CDN do Azure Standard (clássica).
A CDN do Azure do Edgio será desativada em 15 de janeiro de 2025. Você deve migrar sua carga de trabalho para o Azure Front Door antes desta data para evitar interrupção do serviço.. Para obter mais informações, veja Perguntas frequentes sobre a aposentadoria do CDN do Azure da Edgeo.
Arquivos de servidores Web de origem acessíveis publicamente podem ser armazenados em cache na Rede de Distribuição de Conteúdo do Azure até que a TTL (vida útil) termine. A TTL é determinada pelo cabeçalho Cache-Control
na resposta HTTP do servidor de origem. Este artigo descreve como definir cabeçalhos Cache-Control
para recurso de Aplicativos Web do Serviço de Aplicativo do Microsoft Azure, Serviços de Nuvem do Microsoft Azure, aplicativos ASP.NET e sites do IIS (Serviços de Informações da Internet), todos configurados de forma semelhante. Você pode definir o cabeçalho Cache-Control
usando arquivos de configuração ou programaticamente.
Também é possível controlar as configurações de cache no portal do Azure definindo regras de cache da rede de distribuição de conteúdo. Se você criar uma ou mais regras de cache e definir o comportamento do cache para Substituir ou Ignorar cache, as configurações de cache fornecidas pela origem discutidas neste artigo serão ignoradas. Para obter informações sobre conceitos gerais de cache, consulte Como funciona o cache.
Dica
Você pode optar por não definir nenhuma vida útil em um arquivo. Nesse caso, a Rede de Distribuição de Conteúdo do Azure aplica automaticamente uma TTL padrão de sete dias, a menos que tenha configurado regras de cache no portal do Azure. Esse padrão TTL aplica-se somente para otimizações de entrega da web gerais. Para otimizações de arquivo grande, o TTL padrão é de um dia e para otimizações de streaming de mídia, o TTL padrão é um ano.
Para obter mais informações sobre como a Rede de Distribuição de Conteúdo do Azure trabalha para acelerar o acesso a arquivos e outros recursos, consulte Visão geral da Rede de Distribuição de Conteúdo do Azure.
Configurar cabeçalhos de controle de cache usando regras de cache da rede de distribuição de conteúdo
O método preferencial para configurar um cabeçalho Cache-Control
do servidor Web é usar regras de cache no Portal do Azure. Para obter mais informações sobre regras de cache da rede de distribuição de conteúdo, consulte Controlar o comportamento de cache da Rede de Distribuição de Conteúdo do Azure com regras de cache.
Observação
As regras de cache estão disponíveis apenas para perfis CDN do Azure Standard da Edgio. Em perfis CDN do Azure Premium da Edgio, é necessário usar o mecanismo de regras da Rede de Distribuição de Conteúdo do Azure no portal Gerenciar para uma funcionalidade semelhante.
Para navegar até a página de regras de cache da CDN:
No portal do Azure, selecione um perfil da rede de distribuição de conteúdo e selecione o ponto de extremidade para o servidor Web.
No painel esquerdo em Configurações, selecione Regras de cache.
A página Regras de cache é exibida.
Para definir os cabeçalhos de Controle de Cache do servidor Web usando regras de cache globais:
Em Regras de cache globais, defina Comportamento de cache da cadeia de caracteres de consulta para Ignorar cadeias de consulta e defina Comportamento do cache para Substituição.
Para Duração da expiração do cache, insira 3600 na caixa Segundosou 1 na caixa Horas.
Essa regra de cache global define uma duração de cache de uma hora e afeta todas as solicitações para o ponto de extremidade. Ela substitui todos os cabeçalhos HTTP
Cache-Control
ouExpires
que são enviados pelo servidor de origem especificado pelo ponto de extremidade.Selecione Salvar.
Para definir os cabeçalhos de Controle de Cache do servidor Web usando regras de cache personalizadas:
Em Personalizar regras de cache, crie duas condições de combinação:
Para a primeira condição de correspondência, ajuste Condição de correspondência para Path e insira
/webfolder1/*
para o Valor de correspondência. Defina o Comportamento do cache para Substituir e digite 4 no campo Dias.Para a segunda condição de correspondência, ajuste Condição de correspondência para Path e insira
/webfolder1/file1.txt
para o Valor de correspondência. Defina o Comportamento do cache para Substituir e digite 2 no campo Dias.
A primeira regra de cache personalizada estabelece uma duração de cache de quatro dias para qualquer arquivo na pasta
/webfolder1
no servidor de origem especificado pelo ponto de extremidade. A segunda regra substitui a primeira regra somente para o arquivofile1.txt
e define uma duração de cache de dois dias para isso.Selecione Salvar.
Configurando cabeçalhos de Cache-Control usando arquivos de configuração
Para conteúdo estático, como imagens e folhas de estilo, você pode controlar a frequência de atualização modificando os arquivos de configuração applicationHost.config ou Web.config para seu aplicativo Web. Para definir Cache-Control
para o seu conteúdo, use o elemento <system.webServer>/<staticContent>/<clientCache>
em qualquer arquivo.
Usando arquivos ApplicationHost.config
O arquivo ApplicationHost.config é o arquivo raiz do sistema de configuração do IIS. As definições de configuração em um arquivo ApplicationHost.config afetam todos os aplicativos no site, mas são substituídas pelas configurações dos arquivos Web.config que existem para um aplicativo Web.
Usando arquivos Web.config
Com um arquivo Web.config, você pode personalizar a maneira como seu aplicativo Web ou um diretório específico dele se comporta. Normalmente, você tem pelo menos um arquivo Web.config na pasta raiz do seu aplicativo Web. Para cada arquivo Web.config em uma pasta específica, as definições de configuração afetam tudo nessa pasta e nas subpastas, a menos que sejam substituídas na subpasta por outro arquivo Web.config.
Por exemplo, você pode definir um elemento <clientCache>
em um arquivo Web.config na pasta raiz do seu aplicativo Web para armazenar em cache todo o conteúdo estático nele por três dias. Você também pode adicionar um arquivo Web.config com conteúdo mais variável (por exemplo, \frequent
) e definir seu elemento <clientCache>
para armazenar em cache o conteúdo da subpasta por seis horas. O resultado final é que o conteúdo em todo o site é armazenado em cache por três dias, exceto pelo o conteúdo no diretório \frequent
, que é armazenado em cache por apenas seis horas.
O exemplo do arquivo de configuração XML a seguir mostra como configurar o elemento <clientCache>
para especificar a duração máxima de três dias:
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="3.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
Para usar o atributo cacheControlMaxAge, você deve definir o valor do atributo cacheControlMode como UseMaxAge
. Essa configuração fez o cabeçalho HTTP e a diretiva, Cache-Control: max-age=<nnn>
, serem adicionados à resposta. O formato do valor do intervalo de tempo para o atributo cacheControlMaxAge é <days>.<hours>:<min>:<sec>
. Seu valor é convertido em segundos e é usado como o valor da diretiva Cache-Control
max-age
. Para obter mais informações sobre o elemento <clientCache>
, consulte Cache de cliente <clientCache>.
Configurando cabeçalhos Cache-Control programaticamente
Em aplicativos ASP.NET, você controla o comportamento de cache da rede de distribuição de conteúdo de forma programática configurando a propriedade HttpResponse.Cache da API do .NET. Para obter informações sobre a propriedade HttpResponse.Cache, consulte Propriedade HttpResponse.Cache e Classe HttpCachePolicy.
Para armazenar em cache o conteúdo do aplicativo programaticamente no ASP.NET, siga essas etapas:
- Verifique se o conteúdo está marcado como armazenável em cache, configurando
HttpCacheability
paraPublic
. - Defina um validador de cache chamando um dos seguintes métodos
HttpCachePolicy
:- Chame
SetLastModified
para definir um valor de carimbo de data/hora para o cabeçalhoLast-Modified
. - Chame
SetETag
para definir um valor para o cabeçalhoETag
.
- Chame
- Opcionalmente, especifique um tempo de expiração de cache, chamando
SetExpires
para definir um valor para o cabeçalhoExpires
. Caso contrário, as heurísticas de cache padrão descritas anteriormente neste documento se aplicam.
Por exemplo, para armazenar em cache o conteúdo por uma hora, adicione o seguinte código C#:
// Set the caching parameters.
Response.Cache.SetExpires(DateTime.Now.AddHours(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetLastModified(DateTime.Now);
Testando o cabeçalho de Controle de Cache
Você pode facilmente verificar as configurações TTL do seu conteúdo da Web. Com as ferramentas de desenvolvedores do seu navegador, teste se o conteúdo da Web inclui o cabeçalho de resposta Cache-Control
. Também é possível usar uma ferramenta como wget ou Fiddler para examinar os cabeçalhos de resposta.