Os Métodos de Requisição (HTTP Methods), frequentemente chamados de “Verbos HTTP”, definem a ação técnica que o cliente deseja realizar sobre um recurso identificado por uma URL. Padronizados originalmente na RFC 2616 e expandidos em documentos posteriores, os métodos conferem uma semântica clara e rigorosa à comunicação web, permitindo que servidores e intermediários (proxies/firewalls) compreendam a natureza da transação sem precisar analisar o corpo da mensagem. Dominar a distinção entre métodos seguros, idempotentes e de modificação de estado é essencial para arquitetos de APIs e auditores de segurança cibernética.


1. Classificação Semântica dos Métodos

Para garantir a previsibilidade da rede, os métodos são classificados em duas grandes categorias técnicas:

Métodos Seguros (Safe Methods)

São métodos que, por definição, não causam efeitos colaterais no servidor. Eles são destinados apenas à leitura de dados.
- Exemplos: GET, HEAD, OPTIONS.
- Implicação: Como não alteram dados, o navegador pode realizar estas requisições automaticamente para fins de prefetching ou caching.

Métodos Idempotentes (Idempotent Methods)

Garantem que múltiplas requisições idênticas produzam o mesmo resultado final no servidor que uma única requisição.
- Exemplos: PUT, DELETE, GET.
- Importância: Se uma conexão cair durante uma requisição PUT, o cliente pode retransmiti-la sem o risco de criar dados duplicados. O método POST, ao contrário, não é idempotente (retransmitir um POST pode resultar em duas compras em um cartão de crédito).


2. Os Principais Verbos da Web Moderna

GET

Solicita a representação de um recurso específico. É o método mais usado da Internet. Os parâmetros são enviados visíveis na URL (Query String).

POST

Envia dados para serem processados pelo recurso identificado. É usado para submeter formulários, uploads de arquivos e criações de novos registros em bancos de dados. Os dados viajam no corpo (Body) da mensagem.

PUT e PATCH

  • PUT: Substitui integralmente o recurso de destino pelos dados enviados.
  • PATCH: Aplica modificações parciais a um recurso existente, economizando banda e processamento.

DELETE

Solicita a remoção permanente de um recurso no servidor de origem.


3. Métodos Auxiliares e de Diagnóstico

  • HEAD: Idêntico ao GET, mas o servidor envia apenas os cabeçalhos, sem o corpo. Útil para verificar se um arquivo mudou ou se um link ainda é válido.
  • OPTIONS: Retorna quais métodos o servidor suporta para aquele recurso específico (Cabeçalho Allow). É o motor por trás do mecanismo CORS Preflight.

4. Perspectiva de Cyber Security: Métodos Perigosos

Para um analista de segurança, os métodos HTTP são vetores de ataque que devem ser restringidos.

Riscos do Método TRACE (Cross-Site Tracing - XST)

O método TRACE instrui o servidor a ecoar de volta a requisição exata que recebeu.
- O Perigo: Um atacante pode usar scripts maliciosos para forçar o navegador a enviar uma requisição TRACE. A resposta conterá cabeçalhos sensíveis, incluindo cookies de sessão protegidos por HttpOnly, burlando defesas modernas do navegador.
- Recomendação: Desativar o método TRACE globalmente nas configurações do Apache/Nginx.

Abuso de CONNECT e Cross-Protocol Attacks

O método CONNECT é usado para criar túneis TCP (como para tráfego HTTPS através de um proxy). Se mal configurado, um atacante pode usar o servidor da empresa como um proxy de anonimato para atacar outros sites, escondendo seu IP real atrás da infraestrutura legítima da organização.


5. Auditoria Técnica e Diagnóstico de Métodos

Para verificar quais ações um servidor permite em sua infraestrutura:

# Consultando os métodos permitidos (OPTIONS)
curl -X OPTIONS -v https://www.meuservidor.com

# Testando se métodos perigosos estão ativos (Auditoria de Hardening)
curl -X TRACE -v http://www.alvo.com

Análise de Verbos Não Padronizados: Alguns sistemas (como o WebDAV) utilizam métodos como PROPFIND ou LOCK. Se o seu servidor não utiliza estes serviços, a política de segurança deve bloqueá-los explicitamente para reduzir a superfície de ataque.


6. Conclusão: A Intencionalidade da Ação

Os Métodos de Requisição são a linguagem de comando do HTTP. Eles permitem que a Web seja mais do que uma galeria de imagens, transformando-a em uma plataforma interativa de manipulação de dados em tempo real. Dominique a semântica de cada verbo, implemente restrições rigorosas contra métodos desnecessários e valide a idempotência em suas APIs para garantir que a sua infraestrutura seja lógica, performática e, acima de tudo, resistente a manipulações maliciosas.