O que são códigos de status HTTP?

Prévia grátis 6 min de leitura

A resposta curta do servidor

Toda vez que um cliente (navegador, app mobile, consumidor de API) envia uma requisição HTTP, o servidor envia de volta uma resposta. A primeira coisa nessa resposta é um número de três dígitos chamado código de status.

Esse número é o resumo rápido do servidor sobre o que aconteceu:

HTTP/1.1 200 OK

O 200 diz ao cliente: "Sua requisição foi recebida, entendida e processada com sucesso." Não é preciso ler todo o corpo da resposta para saber o resultado: o código de status dá a resposta imediatamente.


As cinco famílias

Os códigos de status HTTP são organizados em cinco categorias baseadas no primeiro dígito:

Faixa Categoria Significado
1xx Informacional Requisição recebida, processamento continua
2xx Sucesso Requisição foi recebida e processada com sucesso
3xx Redirecionamento Ação adicional necessária: o recurso se moveu
4xx Erro do Cliente Algo errado com a requisição
5xx Erro do Servidor Servidor falhou ao atender uma requisição válida

Pense nisso como um sistema de semáforo:

  • 2xx = Luz verde: tudo deu certo
  • 3xx = Luz amarela: vá para outro lugar
  • 4xx = Luz vermelha para você: você cometeu um erro
  • 5xx = Luz vermelha para o servidor: ele quebrou

Anatomia de uma linha de status

O código de status aparece na primeira linha de toda resposta HTTP, chamada linha de status:

HTTP/1.1 200 OK
│         │   │
│         │   └─ Frase de razão (descrição legível por humanos)
│         └───── Código de status (o número de três dígitos)
└─────────────── Versão HTTP

A frase de razão (como "OK", "Not Found", "Created") é apenas uma dica para humanos lendo tráfego HTTP bruto. Aplicações devem confiar no código numérico, não no texto.


Por que códigos de status importam

Para desenvolvedores

Códigos de status determinam como sua aplicação trata respostas:

if response.status == 200
  # Mostrar os dados ao usuário
elsif response.status == 404
  # Mostrar página "não encontrado"
elsif response.status == 500
  # Mostrar página "algo deu errado"
end

Sem códigos de status, você teria que analisar todo o corpo da resposta para descobrir o que aconteceu: lento, propenso a erros e inconsistente entre APIs.

Para navegadores

Navegadores usam códigos de status para tomar decisões automáticas:

  • 301 → seguir automaticamente o redirecionamento e lembrar dele da próxima vez
  • 304 → usar a versão em cache em vez de baixar novamente
  • 401 com WWW-Authenticate: Basic → pedir usuário e senha
  • 204 → ficar na página atual em vez de navegar

Para mecanismos de busca

Google e outros crawlers usam códigos de status para entender seu site:

  • 200 → indexar esta página
  • 301 → transferir ranking para a nova URL
  • 404 → remover esta página dos resultados de busca
  • 503 → voltar depois, não desindexar

Para infraestrutura

Load balancers, CDNs e ferramentas de monitoramento todos dependem de códigos de status:

  • Health checks esperam 200 para confirmar que o servidor está vivo
  • CDNs fazem cache de respostas baseadas em códigos de status
  • Alertas de monitoramento disparam em picos de 5xx

Os códigos de status mais comuns

Você não precisa memorizar todos os códigos de status (existem mais de 60). Aqui estão os que você encontrará com mais frequência:

Código Nome Quando Você Vê
200 OK Requisição GET, PUT, PATCH bem-sucedida
201 Created POST bem-sucedido que criou um recurso
204 No Content DELETE bem-sucedido (nada para retornar)
301 Moved Permanently Recurso tem uma nova URL permanente
302 Found Redirecionamento temporário
400 Bad Request Requisição malformada ou inválida
401 Unauthorized Autenticação necessária
403 Forbidden Autenticado mas sem permissão
404 Not Found Recurso não existe
422 Unprocessable Content Sintaxe válida mas erros semânticos (ex: falhas de validação)
500 Internal Server Error Bug ou crash do servidor
503 Service Unavailable Servidor sobrecarregado ou em manutenção

Códigos de status são um contrato

Códigos de status são parte do contrato da API entre cliente e servidor. Quando um servidor retorna 200 OK, ele está fazendo uma promessa: "A requisição teve sucesso e o corpo da resposta contém o que você pediu."

Usar o código de status errado quebra esse contrato:

  • Retornar 200 com uma mensagem de erro no corpo → confunde clientes automatizados
  • Retornar 500 para um erro de validação → faz parecer um bug do servidor
  • Retornar 404 para um recurso não autorizado → esconde o problema real, a menos que esconder que ele existe seja a intenção (o GitHub responde 404 para repositórios privados que você não pode ver)

Escolher o código de status certo não é pedantismo: é como a web funciona de forma confiável.


O que este curso cobre

Este curso foca na família 2xx Sucesso. Você aprenderá:

  • 200 OK: a resposta de sucesso padrão
  • 201 Created: quando um novo recurso nasce
  • 204 No Content: sucesso sem nada para retornar
  • 202 Accepted e 206 Partial Content: códigos de sucesso especializados
  • Como escolher o código de sucesso certo para cada situação
  • Como Rails implementa esses códigos

Resumo

Conceito Ponto Chave
Código de status Um número de três dígitos resumindo a resposta do servidor
Cinco famílias 1xx informacional, 2xx sucesso, 3xx redirecionamento, 4xx erro do cliente, 5xx erro do servidor
Linha de status HTTP/1.1 200 OK: versão, código, frase de razão
Por que importam Navegadores, APIs, mecanismos de busca e infraestrutura todos dependem deles
Contrato Usar o código correto garante comunicação confiável entre sistemas
Este curso Foca em códigos de sucesso 2xx: 200, 201, 204 e mais
Aula 1 de 7 · grátis

Continue com a aula 2

200 OK: o sucesso padrão

Mostra quando servidores retornam 200 OK em cada método, formatos de resposta, cache e erros comuns com 200.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...