Cache-Control max-age Explicado
Converta o valor de max-age do cabeçalho Cache-Control (em segundos) para um tempo legível em horas e dias. Útil para entender e depurar cache HTTP e CDNs.
Duração
—
Quanto tempo 31536000 segundos realmente são
Você abre o DevTools, vê Cache-Control: max-age=604800 e trava tentando dividir de cabeça. Ou copiou o valor de um tutorial e não sabe se está cacheando por cinco minutos ou por cinco dias, o que muda bastante a vida quando o deploy sai errado. Cole o número de segundos e a página devolve o equivalente em minutos, horas, dias ou anos, escolhendo a unidade conforme a faixa.
O max-age não conta a partir do momento em que o arquivo chegou no seu navegador. Ele conta a partir da geração da resposta, e o cabeçalho Age informa quanto desse tempo já foi consumido dentro de um proxy ou CDN. Um max-age=3600 que chega com Age: 3500 ainda vale cem segundos. Para separar navegador de CDN existe o s-maxage, que sobrescreve o max-age nos caches compartilhados. A conversão aqui usa ano de 365 dias.
O campo aceita qualquer número, mas na especificação max-age é inteiro e não negativo. Valor fracionário ou negativo os caches tratam como inválido ou já vencido. Um ano inteiro, 31536000, só faz sentido em arquivo com nome versionado do tipo app.4f2c1.js, senão o usuário fica preso a uma versão velha sem saída. Para HTML, o normal é no-cache com ETag. A página só traduz o número, não monta o cabeçalho.
Perguntas frequentes
31536000 segundos dá quanto tempo?
max-age=0 e no-store são a mesma coisa?
A ferramenta gera o cabeçalho Cache-Control para mim?
Ferramentas Relacionadas
Parser de Cache-Control
Lê um header Cache-Control e mostra cada diretiva (max-age, no-cache, public, immutable, stale-while-revalidate) com explicação.
Visualizador de HAR
Lê arquivos HTTP Archive (HAR) colados e lista as requisições com método, status, URL e tempo. Útil para auditar performance.
Parse Accept-Charset
Faz parse do header Accept-Charset (em desuso, substituído por UTF-8 padrão).
Construtor de Requisição HTTP
Monte uma requisição HTTP (URL, método, headers, body) e gere snippets em cURL, fetch, axios, Python requests e Go net/http. Tudo no navegador.
Gerador de Basic Auth
Gere o header HTTP `Authorization: Basic <base64>` a partir de usuário e senha. Útil para testar APIs com basic auth via curl, Postman ou fetch. Tudo no navegador.
Parser de Range Header
Decompõe um header Range (bytes=0-499, bytes=-100 etc.) em ranges individuais com início, fim e tamanho.