Calculadora de validade de cache HTTP

Informe os valores de Cache-Control, Expires, Date e Age de uma resposta, o horário em que ela foi recebida e o horário a verificar. A calculadora dá o tempo de frescor, a idade atual e se a resposta ainda está fresca.

Tipo de cache
s
Veredito de frescor (no horário a verificar) —
Tempo de frescor (por quanto tempo a resposta pode permanecer fresca; não muda com o passar do tempo)
Tempo de frescor—
Fonte usada—
Idade atual (o tempo desde que a resposta foi gerada; cresce com o passar do tempo)
Idade atual—
  Idade aparente (horário de recebimento − Date)—
  Valor do cabeçalho Age—
  Idade no recebimento (o maior dos dois acima)—
  Tempo desde o recebimento—
Frescor restante
Frescor restante (tempo de frescor − idade atual)—
Horário em que fica obsoleta—

    Este é um cálculo baseado na RFC 9111. Navegadores e CDNs reais nem sempre se comportam exatamente como a norma descreve. O atraso da resposta é tomado como 0.

    O que esta calculadora faz

    Ela cobre uma parte da RFC 9111, a norma de cache HTTP: o cálculo do frescor. É a parte que decide se uma resposta armazenada pode ser reutilizada sem consultar o servidor de origem. Validação (ETag, If-Modified-Since, 304), Vary e Cache-Control do lado da requisição não são abordados.

    Frescor não é atualização nem exclusão

    Uma resposta estar obsoleta significa apenas que um cache não pode reutilizá-la sem verificar antes. Não significa que a tela do navegador se atualiza sozinha, e não significa que o arquivo no servidor de origem é alterado ou excluído. Da mesma forma, uma resposta estar fresca não significa que o arquivo no servidor não mudou. O cabeçalho Expires, diz a norma, "does not imply that the original resource will change or cease to exist at, before, or after that time" (não implica que o recurso original mudará ou deixará de existir naquele momento, antes ou depois). Esta calculadora apenas faz a aritmética de tempo da cópia em cache.

    Tempo de frescor e idade atual

    Qual valor define o tempo de frescor

    Seguindo a seção 4.2.1 da RFC 9111, usa-se a primeira correspondência:

    Ordem Cache compartilhado (CDN, proxy) Cache privado (navegador)
    1 s-maxage (s-maxage não é usado)
    2 max-age max-age
    3 Expires − Date Expires − Date
    4 Se nenhum estiver presente, não há expiração explícita Igual

    Como a idade atual é calculada

    As fórmulas são da seção 4.2.3 da RFC 9111:

    Esta calculadora não pede o horário em que a requisição foi enviada, então toma o atraso da resposta (o tempo do envio da requisição até o recebimento da resposta) como 0. Em uma conexão com grande atraso, a idade calculada pode ser menor que a real. A norma também permite usar apenas o cabeçalho Age mais o atraso.

    Regras para a entrada

    Outras diretivas de Cache-Control

    Não são usadas no cálculo, mas são mostradas como observações sobre a reutilização.

    Exemplos

    Entrada Resultado
    max-age=3600, sem Age, 1800 s depois do recebimento Tempo de frescor de 3600 s, idade atual de 1800 s, restam 1800 s (fresca)
    O mesmo, aos 3600 s exatos Idade atual de 3600 s. É igual ao tempo de frescor, então está obsoleta
    max-age=3600, Age=600, recém-recebida Idade atual de 600 s, restam 3000 s
    Cache compartilhado com s-maxage=60, max-age=3600 Tempo de frescor de 60 s (max-age é ignorado)

    O que é bom saber

    Fontes e conferências

    O seguinte foi conferido com o texto completo das normas em 1º de novembro de 2026:

    Esta calculadora segue essas seções apenas para o frescor. Passar por este cálculo não é uma afirmação de que um produto ou um servidor esteja em conformidade com a norma.

    Perguntas frequentes

    O que acontece quando max-age e Expires estão ambos presentes?

    max-age tem prioridade e Expires é ignorado (RFC 9111, seção 5.3).

    O s-maxage se aplica a um navegador?

    s-maxage é uma diretiva para caches compartilhados. Um cache privado (um navegador) não a usa.

    O que é o cabeçalho Age?

    É o número de segundos, escrito por um cache no caminho, desde que a resposta foi gerada ou verificada pela última vez na origem. Esta calculadora o usa para achar a idade atual.

    Uma resposta obsoleta desaparece ou se atualiza sozinha?

    Não. Obsoleta significa apenas que um cache precisa verificar antes de reutilizá-la. Isso não atualiza a tela nem altera nada no servidor de origem.

    Como posso conferir um horário?

    O Conversor de timestamp Unix e a Calculadora de expressão cron podem ajudar.