🚀 Capítulo 04: Códigos de Status HTTP (Tema: Pokémon)
NOTE
Este capítulo utiliza a temática de Pokémon para explicar os Códigos de Status. Em uma batalha, você precisa saber se o golpe acertou, errou ou se o jogo travou!
1. 🎯 Objetivo da Aula
Compreender os principais códigos de status HTTP e suas famílias (2xx, 3xx, 4xx, 5xx), entendendo o que o servidor está tentando nos dizer.
2. 🏢 O Cenário Prático (Seu Desafio)
Você está na Liga Pokémon assistindo a uma batalha. O juiz usa códigos numéricos para anunciar o resultado das ações dos treinadores.
- Se o golpe acerta: Código na faixa dos
200. - Se o treinador tenta usar um golpe que o Pokémon não conhece: Código na faixa dos
400. - Se a arena de batalha quebra e a luta é interrompida: Código na faixa dos
500.
Seu desafio é entender essa linguagem dos juízes (os Códigos de Status HTTP)!
3. 🧠 Fundamentos: A Teoria Traduzida
Toda resposta que o servidor envia de volta para o cliente vem acompanhada de um Código de Status (Status Code). Eles são divididos em “famílias” baseadas no primeiro dígito:
🟢 2xx - Sucesso (O golpe acertou!)
Significa que a requisição foi recebida, entendida e aceita com sucesso.
200 OK: Tudo certo! A resposta contém os dados pedidos.201 Created: Sucesso! Um novo recurso foi criado (ex: novo usuário cadastrado).
🟡 3xx - Redirecionamento (O Pokémon foi trocado!)
Significa que o cliente precisa fazer uma ação adicional para completar a requisição.
301 Moved Permanently: O endereço do site mudou para sempre.
🔴 4xx - Erro do Cliente (Você errou o comando!)
Significa que o cliente (você) fez algo errado na requisição.
400 Bad Request: A requisição veio mal formatada.401 Unauthorized: Você não está logado (não tem passe para entrar no ginásio).404 Not Found: O recurso não foi encontrado (O Pokémon errou o alvo!).
💥 5xx - Erro do Servidor (O ginásio pegou fogo!)
Significa que o servidor falhou ao tentar processar uma requisição que parecia válida.
500 Internal Server Error: Erro genérico no servidor (o código quebrou).
4. 📖 Exemplo Guiado: Resumo das Famílias
- 1xx: Informativo (Calma, estou processando).
- 2xx: Sucesso (Deu tudo certo!).
- 3xx: Redirecionamento (Vá por ali).
- 4xx: Erro do Cliente (Você errou algo).
- 5xx: Erro do Servidor (Eu errei algo).
5. 🛠️ Prática Obrigatória 1: O Juiz Pokémon
Diga qual código de status (ou família) melhor representa as seguintes situações:
- Você tenta acessar uma página que não existe mais.
- Você salva com sucesso uma foto nova no Instagram.
- O site do banco fica fora do ar porque os cabos do servidor foram rompidos.
6. 🛠️ Prática Obrigatória 2: 401 vs 403
Pesquise a diferença entre o erro 401 Unauthorized e o 403 Forbidden. (Dica: Um tem a ver com saber quem você é, e o outro com o que você tem permissão de fazer).
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 04 Backend) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
mod_07_backend_e_apis/
├── capitulos/
│ ├── capitulo_04_status_http.md
│ └── codigos/
│ └── cap04/
│ └── pesquisa_erros.txt9. 💡 Checkpoint de Lógica
Se um usuário tentar fazer login com a senha errada, o servidor deve retornar um erro da família 4xx ou 5xx? Por quê?
10. 🔥 Desafio de Fixação
Encontre e liste pelo menos 2 códigos de status da família 3xx além do 301.
11. 🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
- Página não existe →
404 Not Found. - Foto salva →
201 Created(ou200 OK). - Servidor quebrado →
500 Internal Server Error.