DevToolPal
PT
3xx Redirecionamento

304 Not Modified

Não modificado

O que significa

A cópia em cache que o cliente já tem continua válida, então o servidor não envia corpo. Responde a uma requisição condicional com If-None-Match ou If-Modified-Since.

Causas comuns

  • O ETag em If-None-Match corresponde à versão atual
  • O recurso não mudou desde If-Modified-Since
  • Um navegador revalidando um recurso em cache

Como resolver

Se você é o cliente ou visitante

Use o corpo em cache. Se o conteúdo parecer desatualizado, o validador pode estar errado; force o recarregamento ou verifique a geração do ETag.

Se você mantém o site ou a API

Gere ETags estáveis (idênticos em todos os servidores atrás de um balanceador) e envie os mesmos cabeçalhos de cache que enviaria com 200.

Resposta de exemplo

HTTP/1.1
HTTP/1.1 304 Not Modified
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
ETag: "33a64df5"
Cache-Control: max-age=3600

Especificação

RFC 9110 §15.4.5

Perguntas frequentes

› 304 é um erro?

Não. Ele economiza banda ao dizer ao cliente que o cache está atualizado.

› Por que os usuários veem arquivos antigos após um deploy?

Os cabeçalhos de cache permitem cópias antigas. Use nomes de arquivo com hash para os assets e max-age curto com validação para o HTML.