# 9.2.2 Status HTTP

### ❓ O que são?

Códigos de status HTTP são **respostas automáticas** que o servidor envia ao cliente (como um navegador ou uma aplicação) para indicar o **resultado da requisição**. Eles fazem parte do protocolo HTTP e são essenciais na comunicação entre cliente e servidor.

### 🧭 Para que servem?

Esses códigos informam se a requisição foi bem-sucedida, redirecionada, se houve erro do cliente ou do servidor, entre outros. São úteis tanto para **usuários finais** (como mensagens de erro 404) quanto para **desenvolvedores** que precisam entender e tratar diferentes respostas em uma API.

### 🎯 Importância

* Facilitam o **debug** e tratamento de erros.
* Ajudam no **controle de fluxo** da aplicação.
* São fundamentais para **testes e validação de APIs REST**.

***

## 🧾 Lista dos Principais Códigos de Status HTTP

### ✅ 1xx — Informativo

> Requisições recebidas e processo em andamento. Pouco usados em APIs.

* `100 Continue`: O servidor recebeu os cabeçalhos e o cliente pode continuar a requisição.
* `101 Switching Protocols`: O servidor está mudando de protocolo conforme solicitado.

### 📗 2xx — Sucesso

> A requisição foi recebida, entendida e processada com sucesso.

* `200 OK`: Requisição bem-sucedida.
* `201 Created`: Recurso criado com sucesso (ex: cadastro).
* `204 No Content`: Requisição bem-sucedida, mas sem conteúdo no corpo da resposta.

### 📦 3xx — Redirecionamento

> O cliente precisa realizar nova ação para completar a requisição.

* `301 Moved Permanently`: Recurso movido de forma permanente.
* `302 Found`: Recurso movido temporariamente.
* `304 Not Modified`: O recurso não foi modificado desde a última requisição (cache).

### ❌ 4xx — Erro do Cliente

> A requisição contém erro e não pode ser processada.

* `400 Bad Request`: Requisição inválida.
* `401 Unauthorized`: Requisição sem autenticação ou com token inválido.
* `403 Forbidden`: Acesso proibido, mesmo autenticado.
* `404 Not Found`: Recurso não encontrado.
* `409 Conflict`: Conflito no estado atual do recurso (ex: dados duplicados).
* `422 Unprocessable Entity`: Erro de validação (comum em APIs REST).

### 🛠️ 5xx — Erro do Servidor

> O servidor falhou ao processar a requisição corretamente.

* `500 Internal Server Error`: Erro genérico no servidor.
* `502 Bad Gateway`: Resposta inválida de outro servidor.
* `503 Service Unavailable`: Servidor temporariamente indisponível.
* `504 Gateway Timeout`: Tempo de resposta esgotado ao esperar outro servidor.
