🚀 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:

  1. Você tenta acessar uma página que não existe mais.
  2. Você salva com sucesso uma foto nova no Instagram.
  3. 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)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 04 Backend) e clique em Commit to main.
  2. 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.txt

9. 💡 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:

  1. Página não existe 404 Not Found.
  2. Foto salva 201 Created (ou 200 OK).
  3. Servidor quebrado 500 Internal Server Error.

Capitulo Anterior | Proximo Capitulo