O que são códigos de status HTTP?
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
200com uma mensagem de erro no corpo → confunde clientes automatizados - Retornar
500para um erro de validação → faz parecer um bug do servidor - Retornar
404para 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 |
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.