Skip to main content
Validação HTML

Recurso HTTP não recuperável. O estado HTTP do servidor remoto foi: 202.

Sobre este problema HTML

Um código de estado HTTP 202 Accepted indica que o servidor recebeu e reconheceu o pedido, mas o processamento ainda não está completo. Isto é comumente usado para operações assíncronas — o servidor coloca o trabalho numa fila e responde imediatamente para informar o cliente que o pedido foi aceite sem fazer com que o cliente espere. Embora isto seja perfeitamente válido para APIs e sistemas de trabalhos em segundo plano, não é apropriado para servir documentos HTML, folhas de estilo, scripts ou outros recursos que o navegador (ou validador) precisa de ler imediatamente.

O W3C HTML Validator funciona obtendo a sua página e quaisquer recursos ligados (ficheiros CSS, imagens, scripts, etc.) através de HTTP. Espera uma resposta 200 OK com o conteúdo completo no corpo da resposta. Quando recebe um 202 Accepted, o corpo pode estar vazio, incompleto ou conter um marcador de posição — nenhum dos quais pode ser validado de forma significativa. Isto resulta no validador abortar a sua verificação para esse recurso e reportar o erro.

Causas comuns

  • Atrasos no processamento do lado do servidor: O seu servidor web ou framework da aplicação está a adiar a geração de conteúdo para um processo em segundo plano e a retornar 202 como resposta interina.
  • Endpoints assíncronos ou em fila: O URL aponta para um endpoint do estilo API que desencadeia um trabalho em vez de servir conteúdo diretamente.
  • Configuração incorreta de CDN ou proxy: Uma rede de entrega de conteúdo ou proxy reverso à frente do seu servidor está a retornar 202 enquanto obtém ou gera o recurso da origem.
  • Geração de site estático sob demanda: Algumas plataformas geram páginas no primeiro pedido e retornam 202 até que a construção esteja completa (por exemplo, regeneração estática incremental que ainda não colocou a página em cache).

Como corrigir

A correção principal é garantir que o URL que você submete ao validador responde com um estado 200 OK e entrega o conteúdo completo do recurso no corpo da resposta. Aqui estão os passos específicos:

  1. Verifique a configuração do seu servidor. Certifique-se de que o seu servidor web ou aplicação retorna 200 OK para páginas HTML e recursos estáticos. Se o processamento em segundo plano for necessário, deve acontecer antes da resposta ser enviada, ou o resultado deve ser colocado em cache e servido diretamente em pedidos subsequentes.

  2. Evite validar endpoints assíncronos. Se um URL foi projetado para desencadear trabalho em segundo plano (como um webhook ou fila de tarefas), não é um recurso HTML validável. Apenas submeta URLs que servem documentos HTML completos.

  3. Pré-aqueça conteúdo em cache. Se a sua plataforma de hospedagem usa geração sob demanda, visite o URL num navegador primeiro para desencadear a construção, depois valide-o quando a página estiver totalmente gerada e em cache.

  4. Inspecione os cabeçalhos de resposta. Use as ferramentas de programador do navegador ou uma ferramenta de linha de comandos como curl -I <url> para verificar o código de estado que o seu servidor realmente retorna. Procure pela linha HTTP/1.1 202 Accepted e trace por que está a ser enviada.

Exemplos

Comportamento incorreto do servidor (retorna 202)

Neste exemplo conceptual, o servidor responde com 202 para uma página HTML, o que impede o validador de a verificar:

HTTP/1.1 202 Accepted
Content-Type: text/html

<!-- O conteúdo pode estar vazio ou incompleto -->

Se estiver a usar um servidor Node.js/Express, este tipo de código causaria o problema:

app.get('/page', (req, res) => {
  res.status(202).send('<p>Processing...</p>');
  // O trabalho em segundo plano acontece mais tarde
});

Comportamento correto do servidor (retorna 200)

O servidor deve responder com 200 OK e o conteúdo HTML completo:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <h1>Welcome</h1>
    <p>This page is fully rendered and ready to validate.</p>
  </body>
</html>

A correção equivalente num servidor Node.js/Express:

app.get('/page', (req, res) => {
  const html = renderPage(); // Gerar conteúdo completo sincronamente ou aguardá-lo
  res.status(200).send(html);
});

Verificar o código de estado com curl

Você pode verificar que código de estado um URL retorna antes de o submeter ao validador:

curl -I https://example.com/page

Procure por HTTP/1.1 200 OK (ou HTTP/2 200) na primeira linha da saída. Se vir 202 Accepted, investigue a configuração do seu servidor antes de tentar a validação.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.