O Internet Engineering Task Force (IETF) apresentou o método QUERY, uma adição híbrida ao protocolo HTTP que promete revolucionar a forma como os dados são requisitados na web. Oficialmente designado como RFC 10008, o QUERY recebeu o status de padrão proposto, marcando um avanço significativo na comunicação entre clientes e servidores.
Tradicionalmente, o método GET é utilizado para a leitura de dados, com os parâmetros da requisição sendo inseridos diretamente na URL. Por outro lado, o POST é empregado para enviar dados no corpo da requisição e frequentemente associado à criação ou modificação de registros no servidor. O novo método QUERY busca unir o melhor dos dois mundos: ele permite que os parâmetros sejam enviados no corpo da requisição, similar ao POST, mas mantém o caráter seguro e idempotente do GET. Isso significa que uma requisição QUERY pode ser repetida após uma falha sem o risco de alterar o estado do servidor de forma parcial, uma característica crucial para a robustez de aplicações web.
O QUERY se mostra particularmente útil para Web APIs, formulários de busca e funcionalidades de filtragem de dados. Em vez de depender de URLs extensas e potencialmente problemáticas, como "?q=foo&limit=10&sort=-published", os clientes poderão enviar os parâmetros de forma organizada no corpo da requisição. Essa abordagem não só contorna as limitações de comprimento de URL impostas por navegadores, proxies e servidores web, mas também pode melhorar a legibilidade e a segurança das requisições. Embora os dados confidenciais ainda devam ser transmitidos com proteção adequada, o corpo da requisição tende a ser menos registrado em logs de proxy padrão em comparação com os parâmetros de URL.
Para facilitar a interoperabilidade, os servidores poderão indicar o suporte ao método QUERY através da resposta ao método OPTIONS, e a lista de formatos de parâmetros aceitos poderá ser especificada no cabeçalho "Accept-Query". A especificação é flexível quanto aos formatos de parâmetros, permitindo desde os tradicionais parâmetros de formulário até formatos mais complexos como JSONPath, XSLT e SQL. Uma vantagem adicional é a capacidade de cacheamento das respostas do QUERY. Servidores ou proxies poderão armazenar as respostas, associá-las a um URI específico e, posteriormente, servir esses dados em cache através de uma requisição GET, otimizando o desempenho e reduzindo a carga no servidor.





