Pular para o conteúdo
RFC 10008 define o novo método HTTP QUERY para requisições seguras

RFC 10008 define o novo método HTTP QUERY para requisições seguras

Descubra o método HTTP QUERY, especificado no RFC 10008, que permite envios seguros e idempotentes de dados em APIs RESTful.

O RFC 10008, publicado em junho de 2026, introduz o método QUERY para o protocolo HTTP. Desenvolvido pelos autores J. Reschke, J.M. Snell e M. Bishop, o documento está classificado como Proposed Standard e faz parte da trilha de padrões da IETF.

O método QUERY tem como objetivo permitir que o cliente envie um corpo de mensagem que será processado pelo servidor de forma segura (não altera o estado) e idempotente (pode ser repetido sem efeitos colaterais). Essa característica o diferencia do tradicional POST, que pode gerar alterações de estado e, portanto, não deve ser reexecutado automaticamente.

Por que o QUERY é importante?

  • Repetibilidade automática: aplicações podem reenviar a mesma requisição em caso de falhas de rede sem risco de criar registros duplicados ou modificar recursos inadvertidamente.
  • Compatibilidade com caches: como o método é definido como seguro, proxies e caches podem tratá‑lo de forma semelhante ao GET, melhorando a eficiência das comunicações.
  • Facilidade de implementação: servidores que já suportam POST podem adaptar o processamento para aceitar QUERY, reutilizando lógica de validação e resposta.

Principais características técnicas

Característica Descrição
Segurança Não produz efeitos colaterais observáveis no recurso alvo.
Idempotência Várias execuções geram exatamente o mesmo resultado.
Corpo da mensagem Pode conter payload (JSON, XML, etc.) semelhante ao POST.
Código de status Respostas típicas incluem 200 OK, 201 Created, 204 No Content, entre outros.
Cabeçalhos Permite uso de Content-Type, Accept, Authorization, etc.

Como usar o método QUERY

Exemplo de requisição HTTP usando QUERY:

QUERY /api/search HTTP/1.1
Host: exemplo.com
Content-Type: application/json
Accept: application/json

{
  "term": "linux",
  "limit": 10
}

A resposta pode ser:

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: max-age=60

{
  "results": [ ... ],
  "total": 42
}

Histórico e contexto

Até o momento, a especificação HTTP oficial (RFC 7231) definiu métodos como GET, POST, PUT, DELETE, PATCH, HEAD e OPTIONS. O método QUERY surge para suprir a lacuna entre GET (sem corpo) e POST (não seguro), atendendo a casos de uso onde o cliente precisa enviar dados complexos sem provocar alterações no servidor.

O documento foi desenvolvido pelo HTTP Working Group da IETF e está vinculado ao rascunho draft-ietf-httpbis-safe-method-w-body-14. Sua publicação abre caminho para futuras discussões e possíveis atualizações na especificação HTTP/1.1 e HTTP/2.

Impacto para desenvolvedores e operadores

  • APIs RESTful: desenvolvedores podem oferecer endpoints que aceitam QUERY para buscas avançadas, filtragens ou cálculos que não modificam recursos.
  • Infraestrutura de rede: proxies, CDNs e firewalls podem otimizar o tratamento de QUERY da mesma forma que tratam GET, reduzindo latência.
  • Compliance e auditoria: por ser classificado como método seguro, o uso de QUERY facilita a conformidade com políticas de segurança que restringem operações de escrita automática.

Onde encontrar o RFC completo

O texto integral do RFC 10008 está disponível nas bibliotecas online da IETF:

Conclusão

A introdução do método QUERY no RFC 10008 representa um avanço significativo para a padronização de requisições HTTP que precisam transportar payloads sem comprometer a segurança ou idempotência. Sua adoção pode melhorar a robustez de APIs, simplificar a gestão de falhas de rede e ampliar as possibilidades de design de serviços web modernos.

Via mailarchive.ietf.org. Você pode conferir o post original em inglês:

RFC 10008 on The HTTP QUERY Method

Por · Última atualização: