Verbos HTTP
Os verbos HTTP são métodos que indicam as ações a serem realizadas nos recursos de um servidor. Cada verbo possui uma semântica específica, utilizada para interações na comunicação cliente-servidor. Abaixo estão os principais verbos HTTP:
1. GET
Objetivo:
Recuperar informações de um recurso no servidor.
Características:
- Não altera o estado do servidor (método idempotente).
- Os dados são enviados na URL.
- Geralmente utilizado para visualizar dados.
Exemplo:
GET /api/usuarios HTTP/1.1
Host: exemplo.com
2. POST
Objetivo:
Criar um novo recurso no servidor.
Características:
- Envia dados no corpo da requisição.
- Não é idempotente (repetir a requisição pode criar múltiplos recursos).
Exemplo:
POST /api/usuarios HTTP/1.1
Host: exemplo.com
Content-Type: application/json
{
"nome": "João",
"email": "joao@exemplo.com"
}
3. PUT
Objetivo:
Atualizar um recurso existente ou criar um novo recurso, caso ele não exista.
Características:
- Idempotente (repetir a requisição não altera o resultado final).
Exemplo:
PUT /api/usuarios/1 HTTP/1.1
Host: exemplo.com
Content-Type: application/json
{
"nome": "João Atualizado",
"email": "joao@exemplo.com"
}
4. PATCH
Objetivo:
Atualizar parcialmente um recurso existente.
Características:
- Idempotente, mas a atualização é limitada apenas aos campos especificados.
Exemplo:
PATCH /api/usuarios/1 HTTP/1.1
Host: exemplo.com
Content-Type: application/json
{
"email": "novo-email@exemplo.com"
}
5. DELETE
Objetivo:
Remover um recurso do servidor.
Características:
- Idempotente (repetir a requisição não causa mais efeitos).
Exemplo:
DELETE /api/usuarios/1 HTTP/1.1
Host: exemplo.com
6. OPTIONS
Objetivo:
Retornar as opções de comunicação disponíveis para um recurso.
Características:
- Geralmente usado para verificar métodos suportados por um endpoint.
Exemplo:
OPTIONS /api/usuarios HTTP/1.1
Host: exemplo.com
7. HEAD
Objetivo:
Solicitar informações sobre um recurso, sem recuperar o corpo da resposta.
Características:
- Similar ao GET, mas retorna apenas os cabeçalhos da resposta.
Exemplo:
HEAD /api/usuarios HTTP/1.1
Host: exemplo.com
8. TRACE
Objetivo:
Rastrear o caminho que uma requisição percorre até o servidor.
Características:
- Usado para diagnóstico e teste, raramente empregado em produção.
Exemplo:
TRACE /api/usuarios HTTP/1.1
Host: exemplo.com
9. CONNECT
Objetivo:
Estabelecer um túnel de comunicação entre cliente e servidor.
Características:
- Comumente usado para conexões seguras como HTTPS.
Exemplo:
CONNECT exemplo.com:443 HTTP/1.1
Resumo das Características
Método | Idempotente | Corpo de Requisição? | Uso Principal |
---|---|---|---|
GET | Sim | Não | Recuperar dados |
POST | Não | Sim | Criar recurso |
PUT | Sim | Sim | Substituir/criar |
PATCH | Sim | Sim | Atualização parcial |
DELETE | Sim | Não | Remover recurso |
OPTIONS | Sim | Não | Métodos suportados |
HEAD | Sim | Não | Metadados |
TRACE | Sim | Não | Rastrear requisição |
CONNECT | Não | Não | Túnel de conexão |