Sobes.tech
Junior

O que são os códigos de resposta HTTP e em que se diferenciam uns dos outros?

sobes.tech IA

Resposta da IA

Os códigos de resposta HTTP são números de três dígitos devolvidos pelo servidor em resposta a uma solicitação do cliente. Indicam o estado do processamento da solicitação e fornecem informações sobre se foi bem-sucedida, se ocorreu um erro ou se é necessária uma ação adicional.

Os códigos são divididos em cinco classes:

  • 1xx (Informativos): A solicitação foi aceite, o processamento continua.
  • 2xx (Bem-sucedidos): A solicitação foi recebida, compreendida e processada com sucesso.
  • 3xx (Redirecionamentos): O cliente precisa realizar ações adicionais para completar a solicitação.
  • 4xx (Erros do cliente): A solicitação contém um erro de sintaxe ou não pode ser processada.
  • 5xx (Erros do servidor): O servidor não conseguiu completar a solicitação.

As diferenças entre os códigos residem na sua semântica, relacionada às diferentes etapas do processamento da solicitação e aos resultados possíveis.

Exemplos de códigos frequentemente utilizados:

Código Descrição Classe
200 OK Bem-sucedidos
201 Criado Bem-sucedidos
301 Movido Permanentemente Redirecionamentos
302 Encontrado Redirecionamentos
400 Requisição mal formada Erros do cliente
401 Não autorizado Erros do cliente
403 Proibido Erros do cliente
404 Não encontrado Erros do cliente
500 Erro interno do servidor Erros do servidor
503 Serviço indisponível Erros do servidor
// Exemplo de manipulação de resposta HTTP em JavaScript
fetch('/api/data')
  .then(response => {
    if (response.ok) { // Verificação de status bem-sucedido (2xx)
      return response.json();
    } else {
      // Manipulação de erros com base no código de status
      console.error(`Erro HTTP: ${response.status}`);
      if (response.status === 404) {
        console.error('Recurso não encontrado.');
      }
      throw new Error(`Erro HTTP: ${response.status}`);
    }
  })
  .then(data => {
    console.log('Dados recebidos:', data);
  })
  .catch(error => {
    console.error('Erro ao carregar dados:', error);
  });