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
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.
ETag Weak vs Strong
Classifica um ETag como weak (W/"...") ou strong. Weak é igualdade semântica, strong é byte-a-byte.