Todos 2xx Sucesso 3xx Redirecionamento 4xx Erro do Cliente 5xx Erro do Servidor

O que são Códigos de Status HTTP?

Os códigos de status HTTP são números de três dígitos retornados por um servidor em resposta a uma requisição HTTP. Eles informam ao cliente se a requisição foi bem-sucedida, se precisa tomar alguma ação adicional ou se ocorreu um erro. Os códigos são agrupados em cinco classes com base no primeiro dígito.

Categorias de Códigos HTTP

  • 1xx (Informacional): A requisição foi recebida e o processo está continuando.
  • 2xx (Sucesso): A requisição foi recebida, compreendida e aceita com sucesso.
  • 3xx (Redirecionamento): O cliente precisa tomar uma ação adicional para completar a requisição.
  • 4xx (Erro do Cliente): A requisição contém sintaxe inválida ou não pode ser processada. O erro é do cliente.
  • 5xx (Erro do Servidor): O servidor falhou ao tentar processar uma requisição aparentemente válida. O erro é do servidor.

Códigos HTTP Mais Comuns

  • 200 OK: Resposta padrão de sucesso para requisições GET, PUT, PATCH, DELETE
  • 201 Created: Recurso criado com sucesso, geralmente para requisições POST
  • 301 Moved Permanently: A URL mudou permanentemente — usado para redirecionamentos amigáveis ao SEO
  • 400 Bad Request: O servidor não consegue processar a requisição devido a sintaxe inválida
  • 401 Unauthorized: Autenticação é necessária mas falhou ou não foi fornecida
  • 403 Forbidden: O cliente não tem permissão para acessar este recurso
  • 404 Not Found: O recurso solicitado não foi encontrado no servidor
  • 429 Too Many Requests: Limite de taxa excedido
  • 500 Internal Server Error: Erro inesperado no servidor

Perguntas Frequentes sobre Códigos HTTP

Qual é a diferença entre HTTP 401 e 403?

HTTP 401 Unauthorized significa que a autenticação é necessária mas está ausente ou é inválida — o usuário não está logado ou forneceu um token expirado. HTTP 403 Forbidden significa que o usuário está autenticado mas não tem permissão para acessar o recurso. Resumindo: 401 significa "quem é você?", 403 significa "eu sei quem você é, mas você não pode acessar isso." Sempre envie um header WWW-Authenticate com 401 para informar ao cliente como se autenticar.

Quando devo usar 201 Created ao invés de 200 OK?

Retorne 201 Created quando uma requisição POST cria um novo recurso com sucesso. Inclua um header Location de resposta apontando para a URL do recurso recém-criado. Retorne 200 OK para requisições GET, PUT ou PATCH bem-sucedidas que não criam novos recursos. Para operações DELETE bem-sucedidas com corpo de resposta vazio, retorne 204 No Content. Usar o código correto ajuda os clientes da API a tratar as respostas corretamente.

O que é HTTP 422 Unprocessable Entity?

HTTP 422 significa que o servidor entende o tipo de conteúdo da requisição e a sintaxe é válida, mas não consegue processar as instruções semânticas. É usado em APIs REST quando a validação do corpo da requisição falha — um campo obrigatório está faltando, um valor está fora do range ou o formato de data é inválido. É mais específico que 400 Bad Request (que indica sintaxe malformada). Retorne os erros de validação no corpo da resposta para ajudar o cliente a corrigir a requisição.

Qual é a diferença entre os códigos 500 e 503?

HTTP 500 Internal Server Error é um erro genérico do servidor indicando que algo inesperado aconteceu — um bug, uma exceção não tratada ou uma configuração incorreta. HTTP 503 Service Unavailable significa que o servidor está intencionalmente incapaz de processar a requisição no momento, geralmente por manutenção ou sobrecarga. Com 503, inclua um header Retry-After para informar aos clientes quando tentar novamente.

Ferramentas Relacionadas