Ir para o conteúdo
AZ Tools

Construtor de Cabeçalho Cache-Control

Compõe um cabeçalho Cache-Control válido seguindo RFC 9111. Marque as diretivas que precisar (no-cache, no-store, immutable, …), defina as janelas de frescor (max-age, s-maxage, stale-while-revalidate, stale-if-error), e copie o cabeçalho resultante. Inclui quatro presets cobrindo os padrões de deploy mais comuns: asset estático imutável, página privada renderizada, resposta API pública com serving stale, e no-store completo.

Presets
Visibilidade
Frescor (segundos)
Diretivas
Saída
Cache-Control: public, max-age=3600

no-store sobrepõe qualquer outra diretiva — quando está ligado, só no-transform também é emitido.

Como usar

  1. Comece de um preset que combine com seu cenário, depois ajuste.
  2. Campos numéricos aceitam segundos — deixe-os em branco pra omitir a diretiva inteira.
  3. Copie o resultado no seu servidor de origem, regra CDN, ou cabeçalhos de resposta do framework.

Perguntas frequentes

Quando devo usar immutable?
Combine com um max-age longo (um ano é comum) em assets cujo nome de arquivo contém um hash de conteúdo. O navegador então pula a revalidação condicional que faria normalmente num soft refresh.
no-cache vs no-store?
no-cache significa que uma cópia armazenada deve ser revalidada antes do uso; no-store significa não armazenar de jeito nenhum. no-store vence quando a resposta contém dados privados que nunca devem ficar em disco.
Configurei o cabeçalho e nada é armazenado em cache. E agora?
Três motivos respondem pela maioria dos casos. Uma resposta que também traz Set-Cookie é tratada como pessoal pelos caches compartilhados e costuma ser ignorada por uma CDN. Uma requisição enviada com credenciais não é guardada por cache compartilhado a menos que você permita explicitamente. E o recarregar do navegador revalida independentemente do cabeçalho, então testar com recarga forçada sempre parece que ele foi ignorado — abra a URL numa aba nova.
Como isso se combina com Expires e ETag?
Onde ambos existirem, max-age vence Expires; o Expires só importa para caches antigos demais para entender Cache-Control. ETag e Last-Modified são outro mecanismo: não afetam a validade, mas barateiam a requisição depois que a resposta expira, permitindo que o servidor responda 304 sem corpo. Os dois foram feitos para trabalhar juntos.

Ferramentas relacionadas