TrueURL

304 Not Modified

Resposta a um GET ou HEAD condicional: a cópia em cache do cliente ainda é válida, então o servidor não envia corpo e essa cópia é reutilizada.

Frase de motivo
Not Modified
Redirecionamento
Não
Cacheável por padrão
Não

304 Not Modified responde a uma requisição GET ou HEAD condicional, ou seja, que traz If-None-Match ou If-Modified-Since, quando a condição mostra que a cópia armazenada pelo cliente ainda está atualizada. Em vez de enviar o recurso de novo, o servidor responde 304 e o cliente usa a cópia em cache. Isso economiza banda e tempo.

Um 304 nunca tem corpo; ele termina na linha em branco depois dos cabeçalhos. Dos cabeçalhos Cache-Control, Content-Location, Date, ETag, Expires e Vary, o servidor precisa enviar aqueles que um 200 teria incluído, para que os caches possam atualizar a resposta armazenada.

Embora o 304 esteja na faixa 3xx, ele não é um redirecionamento. Não há Location, e o cliente permanece na mesma URL. Um cliente que recebe um 304 sem ter enviado uma requisição condicional está falando com um servidor com defeito.

Exemplo de resposta

HTTP
HTTP/1.1 304 Not Modified
Date: Fri, 06 Nov 2026 10:15:32 GMT
ETag: "5f2b-1a3c"
Last-Modified: Wed, 28 Oct 2026 08:02:11 GMT
Cache-Control: public, max-age=600
Vary: Accept-Encoding

SEO e verificação de redirecionamentos

O 304 ajuda no rastreamento. Os rastreadores do Google dão suporte a requisições condicionais, e um 304 informa ao Googlebot que o conteúdo não mudou desde o último rastreamento. Isso economiza capacidade de rastreamento e carga no servidor enquanto a página mantém seu lugar no índice; por isso, vale a pena ter cabeçalhos ETag ou Last-Modified confiáveis, principalmente em sites grandes.

Por padrão, o TrueURL não envia cabeçalhos condicionais; por isso, você verá 200, e não 304. Para testar a revalidação, adicione um cabeçalho If-None-Match com o ETag da página em Cabeçalhos de requisição personalizados.

Causas comuns e casos de uso

  • Um navegador revalida uma página, imagem ou script em cache com If-None-Match, e o ETag ainda corresponde.
  • Um rastreador ou leitor de feeds busca o recurso de novo com If-Modified-Since, e nada mudou.
  • Os visitantes veem conteúdo desatualizado depois de um deploy porque o servidor continua respondendo 304: os validadores não mudaram, por exemplo um ETag gerado a partir do tamanho e da data de modificação do arquivo, que o deploy preservou. Garanta que os validadores mudem sempre que o conteúdo mudar.

Verificador de redirecionamento de URL

Veja todos os códigos de status que uma URL retorna, salto a salto, com o verificador de redirecionamento gratuito do TrueURL.