Gerenciar a expiração de conteúdo da Web na Rede de Entrega de Conteúdo do Azure
Importante
O Azure CDN Standard da Microsoft (clássico) será desativado em 30 de setembro de 2027. Para evitar qualquer interrupção do serviço, é importante migrar o Azure CDN Standard dos perfis Microsoft (clássicos) para o Azure Front Door Standard ou Premium até 30 de setembro de 2027. Para obter mais informações, consulte Azure CDN Standard da aposentadoria (clássica) da Microsoft.
A CDN do Azure de Edgio será desativada em 4 de novembro de 2025. Você deve migrar sua carga de trabalho para o Azure Front Door antes dessa data para evitar a interrupção do serviço. Para obter mais informações, consulte CDN do Azure das Perguntas frequentes sobre aposentadoria do Edgio.
Os arquivos de servidores Web de origem acessíveis publicamente podem ser armazenados em cache na Rede de Entrega de Conteúdo do Azure até que seu tempo de vida (TTL) passe. O TTL é determinado pelo Cache-Control
cabeçalho na resposta HTTP do servidor de origem. Este artigo descreve como definir Cache-Control
cabeçalhos para o recurso Aplicativos Web do Serviço de Aplicativo do Microsoft Azure, Serviços de Nuvem do Azure, aplicativos de ASP.NET e sites do IIS (Serviços de Informações da Internet), todos configurados de forma semelhante. Você pode definir o Cache-Control
cabeçalho usando arquivos de configuração ou programaticamente.
Você também pode controlar as configurações de cache no portal do Azure definindo regras de cache de rede de entrega de conteúdo. Se você criar uma ou mais regras de cache e definir seu comportamento de cache como 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 o cache funciona.
Gorjeta
Você pode optar por não definir TTL em um arquivo. Nesse caso, a Rede de Entrega de Conteúdo do Azure aplica automaticamente um TTL padrão de sete dias, a menos que você tenha configurado regras de cache no portal do Azure. Este TTL padrão aplica-se apenas a otimizações gerais de entrega na Web. Para otimizações de arquivos grandes, o TTL padrão é de um dia e, para otimizações de streaming de mídia, o TTL padrão é de um ano.
Para obter mais informações sobre como a Rede de Entrega de Conteúdo do Azure funciona para acelerar o acesso a arquivos e outros recursos, consulte Visão geral da Rede de Entrega de Conteúdo do Azure.
Definindo cabeçalhos de Controle de Cache usando regras de cache de rede de entrega de conteúdo
O método preferencial para definir o cabeçalho de Cache-Control
um servidor Web é usar regras de cache no portal do Azure. Para obter mais informações sobre regras de cache de rede de entrega de conteúdo, consulte Controlar o comportamento de cache da Rede de Entrega de Conteúdo do Azure com regras de cache.
Nota
As regras de cache estão disponíveis apenas para o Azure CDN Standard a partir de perfis Edgio . Para perfis CDN Premium do Azure a partir de Edgio, você deve usar o mecanismo de regras da Rede de Entrega de Conteúdo do Azure no portal Gerenciar para obter funcionalidade semelhante.
Para navegar até a página de regras de cache da CDN:
No portal do Azure, selecione um perfil de rede de entrega de conteúdo e, em seguida, selecione o ponto de extremidade para o servidor Web.
No painel esquerdo, em Definições, selecione Regras de colocação em cache.
É apresentada a página Regras de colocação em cache.
Para definir os cabeçalhos Cache-Control de um servidor Web usando regras de cache global:
Em Regras globais de cache, defina Comportamento de cache de cadeia de caracteres de consulta como Ignorar cadeias de caracteres de consulta e defina Comportamento de cache como Substituir.
Para Duração da expiração do cache, digite 3600 na caixa Segundos ou 1 na caixa Horas.
Esta regra de cache global define uma duração de cache de uma hora e afeta todas as solicitações para o ponto de extremidade. Ele substitui qualquer
Cache-Control
cabeçalho HTTP queExpires
é enviado pelo servidor de origem especificado pelo ponto de extremidade.Selecione Guardar.
Para definir os cabeçalhos Cache-Control de um arquivo do servidor Web usando regras de cache personalizadas:
Em Regras de cache personalizadas, crie duas condições de correspondência:
Para a primeira condição de correspondência, defina Condição de correspondência como Caminho e insira
/webfolder1/*
para Valor de correspondência. Defina o comportamento de cache como Substituir e digite 4 na caixa Dias .Para a segunda condição de correspondência, defina Condição de correspondência como Caminho e insira
/webfolder1/file1.txt
para Valor de correspondência. Defina o comportamento de cache como Substituir e digite 2 na caixa Dias .
A primeira regra de cache personalizada define uma duração de cache de quatro dias para todos os
/webfolder1
arquivos na pasta no servidor de origem especificado pelo seu ponto de extremidade. A segunda regra substitui a primeira regra apenas para ofile1.txt
arquivo e define uma duração de cache de dois dias para ele.Selecione Guardar.
Definindo cabeçalhos 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 o Cache-Control
cabeçalho do seu conteúdo, use o <system.webServer>/<staticContent>/<clientCache>
elemento em qualquer um dos arquivos.
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 de quaisquer arquivos Web.config existentes para um aplicativo Web.
Usando arquivos Web.config
Com um arquivo Web.config , você pode personalizar a maneira como todo o seu aplicativo Web ou um diretório específico em seu aplicativo Web 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 suas subpastas, a menos que sejam substituídas no nível da subpasta por outro arquivo Web.config .
Por exemplo, você pode definir um <clientCache>
elemento em um arquivo Web.config na pasta raiz do seu aplicativo Web para armazenar em cache todo o conteúdo estático do seu aplicativo Web por três dias. Você também pode adicionar um arquivo Web.config em uma subpasta com conteúdo mais variável (por exemplo, \frequent
) e definir seu <clientCache>
elemento para armazenar em cache o conteúdo da subpasta por seis horas. O resultado final é que o conteúdo de todo o site é armazenado em cache por três dias, exceto qualquer conteúdo no \frequent
diretório, que é armazenado em cache por apenas seis horas.
O exemplo de arquivo de configuração XML a seguir mostra como definir o <clientCache>
elemento para especificar uma idade 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 com que o cabeçalho HTTP e a diretiva, Cache-Control: max-age=<nnn>
, fossem adicionados à resposta. O formato do valor de timespan para o atributo cacheControlMaxAge é <days>.<hours>:<min>:<sec>
. Seu valor é convertido em segundos e é usado como o valor da Cache-Control
max-age
diretiva. Para obter mais informações sobre o <clientCache>
elemento , consulte Client Cache <clientCache>.
Definindo cabeçalhos de controle de cache programaticamente
Para aplicativos ASP.NET, você controla o comportamento de cache da rede de entrega de conteúdo programaticamente definindo a propriedade HttpResponse.Cache da API .NET. Para obter informações sobre a propriedade HttpResponse.Cache, consulte Propriedade HttpResponse.Cache e Classe HttpCachePolicy.
Para armazenar programaticamente em cache o conteúdo do aplicativo no ASP.NET, execute estas etapas:
- Verifique se o conteúdo está marcado como armazenável em cache definindo
HttpCacheability
comoPublic
. - Defina um validador de cache chamando um dos seguintes
HttpCachePolicy
métodos:- Chamada
SetLastModified
para definir um valor de carimbo de data/hora para oLast-Modified
cabeçalho. - Chamada
SetETag
para definir um valor para oETag
cabeçalho.
- Chamada
- Opcionalmente, especifique um tempo de expiração do cache chamando
SetExpires
para definir um valor para oExpires
cabeçalho. Caso contrário, aplicam-se as heurísticas de cache padrão descritas anteriormente neste documento.
Por exemplo, para armazenar conteúdo em cache 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 Cache-Control
Você pode verificar facilmente as configurações de TTL do seu conteúdo da Web. Com as ferramentas de desenvolvedor do navegador, teste se o conteúdo da Web inclui o cabeçalho da Cache-Control
resposta. Você também pode usar uma ferramenta como wget ou Fiddler para examinar os cabeçalhos de resposta.