O método HTTP QUERY
Aprofundamento CEVIU
Aprofundamento
O método HTTP QUERY, padronizado na RFC 10008 em junho de 2026, preenche uma lacuna técnica antiga no protocolo HTTP: a necessidade de operações seguras e idempotentes que aceitem conteúdo no corpo da requisição. Até então, desenvolvedores usavam POST para consultas complexas quando os parâmetros não cabiam na URL, mas isso mascarava a intenção real da requisição, afinal, POST não é nem seguro nem idempotente por definição. Isso dificultava decisões automáticas de cache, retentativas e análise de tráfego.
Agora, com QUERY, o cliente deixa explícito que está fazendo uma consulta sem efeito colateral. O servidor pode processar o corpo da requisição como um critério de busca, filtro ou até uma linguagem declarativa (como SQL ou GraphQL), e responder com dados que podem ser armazenados em cache, desde que respeitadas as regras de negociação de conteúdo e validação via campos como Accept-Query. A presença de Content-Location e Location nas respostas permite ainda que servidores exponham URIs temporárias para resultados ou para a própria consulta, facilitando a repetição futura via GET.
Por que isso importa
Para equipes de backend e arquitetos de APIs, o QUERY representa uma evolução prática no design RESTful. Ele permite construir endpoints mais limpos para buscas avançadas, relatórios analíticos ou consultas estruturadas, sem comprometer a semântica do protocolo. Além disso, proxies, CDNs e bibliotecas de cliente podem agora otimizar automaticamente essas chamadas, retentativas após falha de rede, cache inteligente e auditoria mais precisa se tornam possíveis porque o método revela a intenção do desenvolvedor.
No front-end e em ambientes serverless, isso reduz a necessidade de workarounds como serializar filtros em strings de query gigantes ou abusar de POST para tudo. Com QUERY, a DX melhora: ferramentas como curl, Postman ou bibliotecas de type-safe HTTP ganham mais clareza sobre o comportamento esperado. Segurança também se beneficia, já que servidores podem rejeitar corpos malformados ou tipos de mídia inválidos com códigos de erro específicos, bloqueando tentativas de injeção antes que cheguem à lógica de negócio.
Linha do tempo
Publicação oficial da RFC 10008, padronizando o método HTTP QUERY como parte do Standards Track da IETF
Perguntas frequentes
Qual a diferença entre QUERY e GET com parâmetros na URL?
GET é limitado pelo tamanho da URL e pela capacidade de codificar dados complexos. QUERY permite enviar grandes volumes de critérios no corpo da requisição, como JSON ou formulários estruturados, mantendo a segurança e a idempotência. Enquanto GET só usa a string de consulta, QUERY pode usar qualquer formato negociado via Content-Type.
QUERY substitui POST para consultas?
Não substitui, mas oferece uma alternativa semântica correta. POST ainda é necessário quando há mudança de estado. Já para operações somente de leitura com entrada complexa, QUERY é a escolha ideal. Servidores podem aceitar ambos, mas devem tratar QUERY como seguro e idempotente por padrão.
Como saber se um servidor suporta QUERY?
O cliente pode verificar o cabeçalho Accept-Query na resposta ou tentar uma requisição OPTIONS no recurso. Se o método estiver listado, o endpoint aceita consultas com corpo. Também é possível fazer um teste com QUERY e analisar o código de erro caso não seja suportado.
QUERY pode ser cacheado?
Sim, assim como GET, respostas QUERY são cacheáveis por padrão. Proxies e navegadores podem armazenar o resultado se os cabeçalhos de cache (como Cache-Control) permitirem. A presença de Content-Location ajuda a identificar diretamente o recurso resultante para recuperação futura via GET.
Fontes
- datatracker.ietf.orgfonte original
- Categoria
- CEVIU Web Dev
- Publicado
- 25 de junho de 2026
- Editoria
- CEVIU Web Dev
