<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/http-query-method-is-here-and-the-ecosystem-is-scrambling-to-catch-up-b4swkgeik" -->

---
title: HTTP QUERY method is here, and the ecosystem is...
description: RFC 10008 introduces the HTTP QUERY method, designed to fill the gap between GET and POST for complex search queries. It carries a request body like POST but...
canonical: https://daily.dev/posts/http-query-method-is-here-and-the-ecosystem-is-scrambling-to-catch-up-b4swkgeik
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: HTTP QUERY method is here, and the ecosystem is scrambling to catch up | daily.dev
og:description: RFC 10008 introduces the HTTP QUERY method, designed to fill the gap between GET and POST for complex search queries. It carries a request body like POST but...
og:url: https://daily.dev/posts/http-query-method-is-here-and-the-ecosystem-is-scrambling-to-catch-up-b4swkgeik
og:image: https://api.daily.dev/og/posts/b4swKgEIk.png
og:image:alt: HTTP QUERY method is here, and the ecosystem is scrambling to catch up
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# HTTP QUERY method is here, and the ecosystem is scrambling to catch up

**[Trends](https://daily.dev/sources/trends)** · 2 min read · 94 upvotes · 7 comments

## Summary

RFC 10008 introduces the HTTP QUERY method, designed to fill the gap between GET and POST for complex search queries. It carries a request body like POST but is defined as safe and idempotent like GET, with caching keyed on both URI and body content. This could enable edge caching for GraphQL APIs without persisted queries. Ecosystem support is uneven: Node.js 21+/22+, Go 1.22+, and OpenAPI 3.2+ already handle it, while Spring MVC/WebFlux support is targeted for November 2026 and Jakarta Servlet support is still pending. Quarkus can already support it via Jakarta REST's @HttpMethod meta-annotation. Broader adoption faces hurdles including WAF rules, CDN caching logic updates, CORS preflight behavior, and GDPR implications of body content in cache keys.

## Content

For years, developers building complex search APIs have been stuck with a bad choice: cram everything into a GET URL (and hit 414 errors or leak sensitive data into logs), or use POST and lie about what the request actually does. RFC 10008, published by the IETF in June 2026, finally closes that gap.

## What QUERY actually is

QUERY carries a request body like POST but is defined as safe and idempotent like GET. That combination matters more than it sounds. Safe means the request doesn't modify server state. Idempotent means repeating it is harmless. Together, those semantics unlock caching — keyed on both URI and body content — which POST never had.

The RFC also adds an `Accept-Query` header for capability discovery and proper redirect and conditional request handling. It's not a hack on top of existing methods; it's a first-class HTTP verb.

## Why this matters beyond REST tidiness

The GraphQL crowd has the most to gain here. Right now, getting edge caching on GraphQL queries without persisted queries is painful. QUERY changes that calculus. There are also real implications for WAF rules, CORS preflight handling, and GDPR compliance — GET parameters showing up in server logs has always been a quiet data-exposure problem.

For REST API design, the difference is concrete: `QUERY /products` with a JSON body beats `POST /products/search` both semantically and in terms of what intermediaries can do with the request.

## Where adoption actually stands

This is where it gets honest. Backend support exists — Node.js 21+/22+, Go 1.22+, Apache Tomcat 12 (merged July 2026), and OpenAPI 3.2+ are on board. Quarkus can implement it today using Jakarta REST's `@HttpMethod` meta-annotation, since its Netty/Vert.x layer treats the method as an arbitrary token.

But Jetty has an open PR targeting version 13. Jakarta Servlet has an open issue. Spring MVC/WebFlux doesn't have `RequestMethod.QUERY` yet — that's targeted for Spring Framework 7.1 in November 2026. Proxies, CDNs, and browsers are a longer story.

The RFC is real and the semantics are sound. Broad ecosystem support is a 2027 conversation at the earliest.

## Community discussion

Top comments from developers on daily.dev.

**@andradei** · 2 upvotes

> Awesome. Hopefully this won't take more than a year for the cloud tools and hosted software to catch up.

**@a\_saepudin** · 1 upvotes

> ![GIF](https://static.klipy.com/ii/925f17378dd1893b674a723c07535afe/c6/79/mvuKhBgt.gif)

**@theikka** · 0 upvotes

> Finally, but it will probably take a long time before full adoption..

**@michalfilo** · 0 upvotes

> Well this looks good  but I still think that this is a partial solution... We need to think http methods properly and maybe allowing custom ones

**@lucasgoularte** · 0 upvotes

> Honestly, about time, the whole GET vs POST thing for search endpoints has been annoying for years, you either stuff everything into the URL or use POST and lose caching, not great options

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#architecture](https://daily.dev/tags/architecture), [#graphql](https://daily.dev/tags/graphql)

[View this post on daily.dev](https://daily.dev/posts/http-query-method-is-here-and-the-ecosystem-is-scrambling-to-catch-up-b4swkgeik)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"HTTP QUERY method is here, and the ecosystem is scrambling to catch up","url":"https://daily.dev/posts/http-query-method-is-here-and-the-ecosystem-is-scrambling-to-catch-up-b4swkgeik","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/http-query-method-is-here-and-the-ecosystem-is-scrambling-to-catch-up-b4swkgeik"},"datePublished":"2026-07-31T08:25:37.488Z","dateModified":"2026-08-04T10:55:05.463Z","description":"RFC 10008 introduces the HTTP QUERY method, designed to fill the gap between GET and POST for complex search queries. It carries a request body like POST but...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8652563b4e1eddfac1c1ba5077d0bc3f?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8652563b4e1eddfac1c1ba5077d0bc3f?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Trends","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Trends","logo":"https://media.daily.dev/image/upload/s--ZfSp3asX--/f_auto,q_auto/v1780996004/logos/trends?_a=BAMAMiWQ0","url":"https://daily.dev/sources/trends"},"commentCount":7,"discussionUrl":"https://daily.dev/posts/http-query-method-is-here-and-the-ecosystem-is-scrambling-to-catch-up-b4swkgeik","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":94},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":7}],"keywords":"webdev,architecture,graphql","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Trends","item":"https://daily.dev/sources/trends"},{"@type":"ListItem","position":3,"name":"HTTP QUERY method is here, and the ecosystem is scrambling to catch up"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/http-query-method-is-here-and-the-ecosystem-is-scrambling-to-catch-up-b4swkgeik","comment":[{"@type":"Comment","text":"Awesome. Hopefully this won’t take more than a year for the cloud tools and hosted software to catch up.","datePublished":"2026-07-31T17:36:05.466Z","dateModified":"2026-07-31T17:36:14.781Z","url":"https://daily.dev/posts/b4swKgEIk#c-dJI019rhc","author":{"@type":"Person","name":"Isaac de Andrade","url":"https://daily.dev/andradei","image":"https://avatars.githubusercontent.com/u/2653546?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}},{"@type":"Comment","text":"","datePublished":"2026-08-01T12:41:10.776Z","url":"https://daily.dev/posts/b4swKgEIk#c-ZWu0eMiNJ","author":{"@type":"Person","name":"As","url":"https://daily.dev/a_saepudin","image":"https://avatars.githubusercontent.com/u/71208589?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}},{"@type":"Comment","text":"Finally, but it will probably take a long time before full adoption…","datePublished":"2026-08-04T05:44:02.398Z","url":"https://daily.dev/posts/b4swKgEIk#c-35KzhdkYd","author":{"@type":"Person","name":"Tuukka Heikura","url":"https://daily.dev/theikka","image":"https://media.daily.dev/image/upload/s--W5yBZISt--/f_auto/v1783344555/avatars/avatar_33sRAT0QFUDOQBxSs4lkP?_a=BAMAMicg0"}},{"@type":"Comment","text":"Well this looks good  but I still think that this is a partial solution… We need to think http methods properly and maybe allowing custom ones","datePublished":"2026-08-01T19:53:02.536Z","url":"https://daily.dev/posts/b4swKgEIk#c-hfYDU7rEx","author":{"@type":"Person","name":"Michal Filo","url":"https://daily.dev/michalfilo","image":"https://lh3.googleusercontent.com/a/ACg8ocJw7RT2L5Tl9Qa2OnmI7uwXbrBSH2qT6cLpHU8fAuHxrbOUHA=s96-c"}},{"@type":"Comment","text":"Honestly, about time, the whole GET vs POST thing for search endpoints has been annoying for years, you either stuff everything into the URL or use POST and lose caching, not great options","datePublished":"2026-08-03T11:12:24.264Z","url":"https://daily.dev/posts/b4swKgEIk#c-s4HZdXCa8","author":{"@type":"Person","name":"Lucas Goularte","url":"https://daily.dev/lucasgoularte","image":"https://lh3.googleusercontent.com/a/ACg8ocI6_xX-FHCNWxitHoNOjKgCRsuK1DWVzdEm4u9pC0Irsf3dT72w=s96-c"}}]}
```

