O código de status HTTP 304 não modificado indica um problema de comunicação entre o navegador de um usuário e o servidor de um site. Se você ou seus usuários se depararem com este código de status em seu site, ele poderá bloquear totalmente o acesso ao seu conteúdo.

Como ele pode estar no lado do servidor ou no lado do cliente, descobrir a origem do problema pode exigir um pouco de trabalho. Felizmente, existem várias técnicas infalíveis para a solução de problemas.

Neste artigo, discutiremos os códigos de status HTTP e explicaremos o que é o código de status HTTP 304. Depois o acompanharemos através de seis métodos que você (ou seus visitantes) pode usar para consertá-lo.

Vamos começar!

Uma Introdução aos Códigos de Status HTTP

Para entender o HTTP 304, ele ajuda a entender primeiro os códigos de status. Simplificando, toda vez que você faz uma solicitação ao seu navegador – como ao acessar um determinado site – um código de status HTTP é enviado entre o seu navegador e o servidor para troca de informações.

Existem mais de 40 códigos de status diferentes que podem estar envolvidos nessa comunicação. No entanto, há apenas um punhado de códigos que você provavelmente irá encontrar diretamente. Quando você encontra um código de status, isso geralmente significa que algo deu errado.

Os códigos de status HTTP enquadram-se em uma das cinco categorias, numeradas entre os 100s e os 500s. Cada série indica um tipo diferente de problema. Por exemplo, códigos de erro que se enquadram nos 400s, como o erro “404 Not Found” e o “erro 401“, tipicamente significam que houve um problema com a solicitação e o site ou página em questão era inalcançável.

Por outro lado, códigos na década de 300 – como o código de status HTTP 304 que vamos focar neste post – são códigos de redirecionamento. Eles deixam claro que as informações solicitadas foram substituídas temporária ou permanentemente por outro recurso.

Quando você encontra um desses códigos de status, isso significa que outras ações devem ser tomadas.

O que é o código de status HTTP 304?

O HTTP 304, também conhecido como “304 Não Modificado”, é um código que comunica ao seu navegador que: “O recurso solicitado não foi modificado desde a última vez que você o acessou”.

A Internet Engineering Task Force (IETF) define o 304 Não modificado como:

O código de status 304 (Não Modificado) indica que uma solicitação condicional GET ou HEAD foi recebida e teria resultado em uma resposta de 200 (OK) se não fosse pelo fato de que a condição avaliada é falsa. Em outras palavras, não há necessidade de o servidor transferir uma representação do recurso alvo porque a solicitação indica que o cliente, que fez a solicitação condicional, já tem uma representação válida; o servidor está, portanto, redirecionando o cliente para fazer uso daquela representação armazenada como se fosse a carga útil de uma resposta de 200 (OK).

Essencialmente, seu (ou de seu visitante) navegador está sendo informado pelo servidor que os recursos armazenados (em cache) no navegador não foram modificados desde a última vez que você visitou aquela página.

Por sua vez, seu navegador recupera do cache uma versão salva da página da web. O objetivo disso é melhorar a velocidade e entrega da página, evitando que seu navegador tenha que baixar repetidamente as mesmas informações.

Confira nosso Guia de Vídeo para o Código de Status Não Modificado 304 e todos os Redirecionamentos 3xx

Entendendo as solicitações HTTP 304

Quando o seu navegador armazena um recurso no cache, ele mantém o que é chamado de ‘Last-Modified header’ que foi enviado do servidor. Se um navegador recebe uma solicitação para uma página web, ele tem uma cópia salva, mas não sabe se tem a última versão, ele envia uma solicitação de ‘validação condicional’ para o servidor.

O navegador comunica ao servidor a data e hora da ‘Última Modificação’ para a cópia do recurso que possui, através do cabeçalho ‘If-Modified-Since‘ ou ‘If-None-Match‘. O servidor inspeciona esses cabeçalhos e também olha para o valor ETag. Este último é um identificador único usado para especificar a versão de um determinado recurso.

Se os valores desses arquivos forem os mesmos, o servidor envia o cabeçalho de resposta HTTP 304 Não Modificado e o navegador utiliza a cópia em cache do recurso.

Se a cópia do navegador estiver desatualizada, o que significa que o arquivo foi modificado desde a última solicitação, ele envia um código HTTP 200 e uma nova cópia é utilizada.

Infelizmente, existem alguns problemas que podem causar uma resposta de HTTP 304 quando não é suposto que isso ocorra. As causas mais comuns incluem:

  • Problemas de configuração do servidor ou DNS (Domain Name Server)
  • Um recurso em cache que está infectado ou corrompido (ou seja, malware ou vírus que afetam o navegador)

O código de status 304 pode ser devido a um problema tanto no lado do servidor quanto no lado do cliente, por isso pode ser necessário algum tipo de solução de problemas para diagnosticá-lo e resolvê-lo.

Como corrigir um código de status HTTP 304 (6 Potenciais Métodos)

Os métodos que você pode usar para resolver um código de status HTTP 304 variam de simples a bastante técnicos. Os mecanismos de busca são responsáveis pela indexação e caching dos sites, por isso esta questão normalmente pode ser rastreada até o navegador que está sendo utilizado para acessar o site.

É claro que não há muito que você possa fazer para consertar os navegadores das pessoas que estão tentando acessar o seu site.

Entretanto, entender o que pode estar causando o problema para os visitantes pode ser útil, seja ao tentar encontrar uma solução do seu lado ou ao ajudá-los diretamente.

Com isso em mente, vamos dar uma olhada em seis métodos que você pode usar para tentar corrigir um código de status do HTTP 304!

1. Limpar os dados do Cache do Navegador

Primeiro, limpar os dados do seu navegador para limpar o cache pode ajudar a acessar a URL desejada. Isso inclui excluir todos os dados de navegação, cookies e informações do cache.

As instruções para executar este processo variam de acordo com o navegador que você está usando. Se você não tem certeza de como fazê-lo em seu dispositivo, sinta-se à vontade para consultar nosso guia sobre como limpar o cache de todos os principais navegadores.

2. Executar uma varredura de malwares

Navegadores corrompidos que foram infectados com um vírus ou malware podem ser outro culpado. Portanto, é uma boa idéia executar uma varredura de malware no seu sistema. Fazer isso pode ajudar a identificar e remover qualquer problema que possa estar interrompendo ou interferindo com a solicitação do cabeçalho, incluindo extensões problemáticas.

Se você estiver usando a versão Windows do Chrome, você pode executar o Malware Scanner e a Ferramenta de Limpeza que vem embutida.

Para fazer isso, primeiro certifique-se de estar executando a última versão do Chrome, abrindo uma nova aba e clicando no ícone do menu, seguido por Sobre o Chrome:

A página Sobre do navegador Google Chrome
A página Sobre do navegador Google Chrome

Se seu navegador não estiver atualizado para a versão atual, você pode resolver isso no mesmo local. Então, abra uma nova aba Chrome e digite “chrome://settings/cleanup” na barra de URLs.

Pressione Enter, e ao lado de Encontrar e remover software nocivo clique no botão Encontrar:

A ferramenta de limpeza no Google Chrome
A ferramenta de limpeza no Google Chrome

O scanner começará a funcionar e, em seguida, reportará os resultados.

Infelizmente, alguns outros navegadores como Firefox e Edge, assim como os sistemas operacionais MacOS e Linux, não vêm com suas próprias versões desta ferramenta integrada. Ao invés disso, você terá que executar uma verificação de malware usando o software antivírus em seu computador.

3. Desabilite as extensões do seu Navegador

As extensões do seu navegador também podem ser infectadas e interferir nas solicitações e na comunicação com o servidor. É por isso que você também pode querer desativá-las. Você pode fazer isso abrindo o menu do Chrome e indo para Configurações > Extensões:

O item do menu Extensões nas configurações do Chrome
O item do menu Extensões nas configurações do Chrome

Na página Extensões, você pode desativar cada uma delas clicando no botão de comutação correspondente.

Você também pode excluir extensões não utilizadas ou desatualizadas através do botão Remover:

A página Extensões no Google Chrome
A página Extensões no Google Chrome

Novamente, este processo irá variar ligeiramente dependendo do seu navegador. O objetivo é remover ou desativar cada extensão manualmente e depois verificar se isso resolve o problema do HTTP 304.

Então, você pode tentar virá-los um a um.

4. Lavar o DNS e Reinicializar o TCP/IP

Se o problema não tiver sido resolvido neste ponto, pode haver um problema com as configurações do DNS. Por exemplo, usar um endereço IP desatualizado pode causar um código de status no HTTP 304.

Portanto, outra abordagem para tentar é descarregar o DNS e reiniciar o TCP/IP.

Com o Chrome, você pode lavar o DNS do navegador digitando “chrome://net-internals/#dns” em uma nova aba.

Pressione Enter, e depois clique no botão Clear host cache:

A página de configurações para a descarga do cache DNS no Chrome
A página de configurações para a descarga do cache DNS no Chrome

Você também pode limpar o DNS e reiniciar o TCP/IP no seu sistema operacional. Se você precisar de orientações detalhadas, você pode consultar nosso tutorial sobre Como Lavar o Cache DNS (Windows, Mac, Chrome).

5. Tente usar o DNS Público do Google

Outra causa potencial é um endereço DNS incorreto. Portanto, vale a pena usar o DNS Público do Google para ver se isso resolve o problema.

No Windows, você pode fazer isso pressionando as teclas Win + R. Na janela Executar que aparece, digite “ncpa.cpl” na caixa de comando, e então pressione Ok.

Na janela Conexões de Rede que se abre a seguir, localize a conexão de rede que você está usando e clique com o botão direito do mouse sobre ela. A seguir, selecione Propriedades:

A página de configurações de Conexões de Rede no Windows
A página de configurações de Conexões de Rede no Windows

A partir daí, clique duas vezes na versão 4 do Protocolo Internet:

As configurações de propriedades Wi-Fi no Windows
As configurações de propriedades Wi-Fi no Windows

Selecione a opção “Use the following DNS server address”, então digite o valor “8.8.8.8” em Preferred e “8.8.4.4” em Alternate:

Os campos para entrada de endereços de servidores DNS preferidos e alternativos no Windows
Os campos para entrada de endereços de servidores DNS preferidos e alternativos no Windows

Quando terminar, clique em Ok. Depois reinicie seu sistema, e tente acessar o site novamente.

Para alterar as configurações do seu servidor DNS usando macOS, você iria para Apple > Preferências do Sistema > Rede:

Preferências do Sistema em macOS
Preferências do Sistema em macOS

Na janela que se abre, selecione sua conexão, depois clique em Avançado seguido da guia DNS:

O painel DNS da Rede em macOS
O painel DNS da Rede em macOS

Clique no ícone + ao lado dos endereços IPv4 ou IPv6, para substituir os endereços existentes pelos IPs públicos do Google.

Para mais instruções ou para orientação sobre o uso do DNS Público do Google em um sistema operacional Linux ou outro sistema operacional, confira próprio guia DNS do Google.

6. Verifique se os arquivos de configuração do seu servidor contêm instruções incorretas de redirecionamento

Um código de status HTTP 304 Não Modificado pode ocorrer devido a problemas relacionados tanto ao servidor quanto ao cliente. Se nenhum dos métodos que cobrimos até agora corrigiu o problema, os arquivos de configuração do seu servidor podem estar em falha. Por exemplo, é possível que haja instruções incorretas de redirecionamento presentes.

O processo de verificação dos arquivos de configuração do seu servidor depende se você está usando Nginx ou Apache.

Na Kinsta, utilizamos o servidor web Nginx. Então se você é um usuário Kinsta, você não terá acesso ao arquivo .htaccess que os usuários do Apache fazem.

Entretanto, você ainda pode realizar funções similares. Por exemplo, após fazer login no MyKinsta, você pode verificar na seção Analytics > Response do painel para obter uma quebra dos códigos de resposta e redirecioná-los:

Um exemplo de análise detalhada do código de resposta no MyKinsta
Um exemplo de análise detalhada do código de resposta no MyKinsta

Você também pode verificar os logs de erros. Se você tiver uma pergunta específica ou solicitação sobre a edição dos arquivos de configuração, sua melhor aposta é entrar em contato com nossa equipe de suporte.

Se seu servidor está rodando no Apache, então você vai querer procurar pelo arquivo . htaccess no diretório raiz do seu site. Você pode fazer isso entrando no gerenciador de arquivos para sua conta de hospedagem, e navegando para a pasta public_html.

Uma vez aberto esse arquivo, procure pela seção mod_cache do módulo. Deve ser algo parecido com isto:

LoadModule cache_module modules/mod_cache.so
<IfModule mod_cache.c>
    LoadModule cache_disk_module modules/mod_cache_disk.so
    <IfModule mod_cache_disk.c>
        CacheRoot "c:/cacheroot"
        CacheEnable disk  "/"
        CacheDirLevels 5
        CacheDirLength 3
    </IfModule>

    # When acting as a proxy, don't cache the list of security updates
    CacheDisable "http://security.update.server/update-list/"
</IfModule>

Não recomendamos a exclusão de nada, pois isso pode causar danos graves. Ao invés disso, você pode tentar comentar temporariamente a seção de cache adicionando um símbolo “#” no início de cada linha.

Após salvar suas alterações, verifique se isso resolveu o código de status do HTTP 304.

Resumo

Os códigos de redirecionamento 300s são usados para melhorar a velocidade e o desempenho da página. Infelizmente, quando um servidor ou navegador não está configurado corretamente, a comunicação entre os dois pode ser interrompida e resultar em um código de status HTTP 304 não modificado. Há seis métodos que você pode usar para corrigi-lo, especificamente:

  1. Limpar os dados do cache do seu navegador.
  2. Executando uma varredura de malware.
  3. Desabilitando as extensões do seu navegador.
  4. Lavagem do DNS e reinicialização do TCI/IP.
  5. Experimentando o DNS Público do Google.
  6. Verificação dos arquivos de configuração do seu servidor para instruções incorretas de redirecionamento.