<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/why-http-needed-a-new-method-after-30-years---meet-query-a5uhffgpn" -->

---
title: Why HTTP needed a new method after 30 years - meet QUERY
description: HTTP is getting a new method called QUERY that solves a 30-year-old workaround. GET cannot carry a request body, forcing developers to misuse POST for complex...
canonical: https://daily.dev/posts/why-http-needed-a-new-method-after-30-years---meet-query-a5uhffgpn
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Why HTTP needed a new method after 30 years - meet QUERY | daily.dev
og:description: HTTP is getting a new method called QUERY that solves a 30-year-old workaround. GET cannot carry a request body, forcing developers to misuse POST for complex...
og:url: https://daily.dev/posts/why-http-needed-a-new-method-after-30-years---meet-query-a5uhffgpn
og:image: https://api.daily.dev/og/posts/A5UhfFgPn.png
og:image:alt: Why HTTP needed a new method after 30 years - meet QUERY
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.

# Why HTTP needed a new method after 30 years - meet QUERY

**[Medium](https://daily.dev/sources/medium_js)** · 7 min read · 12 upvotes · 1 comments

## Summary

HTTP is getting a new method called QUERY that solves a 30-year-old workaround. GET cannot carry a request body, forcing developers to misuse POST for complex search queries — losing cacheability in the process. QUERY combines GET's read semantics and idempotency with POST's ability to carry a structured request body. This means complex filter queries can be sent as JSON without URL length limits, without leaking parameters in logs, and with full caching support. QUERY is currently an IETF draft proposal and not yet universally supported, but it addresses a well-understood pain point in API design.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/@ishantagarwal/why-http-needed-a-new-method-after-30-years-meet-query-7ce979ffdae7>

## Questions this post answers

### What is the HTTP QUERY method and why was it created?

QUERY is a proposed HTTP method that combines GET's read intent and idempotency with POST's ability to carry a request body. It exists because GET cannot safely carry complex parameters (URL length limits around 8000 characters, parameters exposed in logs, and messy encoding of nested structures), while POST works but isn't idempotent, so responses can't be cached, forcing every duplicate search to hit the server and database.

_Developers designing search APIs can track emerging standards like the QUERY method on daily.dev before committing to a workaround._

### Why can't POST requests be cached the way GET requests can?

POST responses cannot be cached reliably because POST is not idempotent - calling it multiple times with the same input can produce different results or side effects, so a cache cannot assume identical output for identical input. GET, by contrast, is idempotent and safe to cache at the CDN or application layer, which is why developers using POST for search queries lose that caching benefit entirely.

_Anyone weighing caching tradeoffs between GET and POST can follow this kind of API design reasoning on daily.dev._

### Is the HTTP QUERY method supported by browsers and servers yet?

Not universally. QUERY exists only as an IETF draft proposal (draft-ietf-httpbis-safe-method-w-body) and is not yet supported across all browsers, servers, and CDNs, though it is gaining traction because it addresses a widely recognized limitation in how complex read queries are handled over HTTP.

_Teams planning ahead for API standards changes can keep tabs on QUERY method adoption via daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@ahmetozel** · 0 upvotes

> The semantics are appealing, but the deployment path is the hard part: reverse proxies, WAFs, CDN cache keys, and generated clients must all preserve the method and body. Until support is end-to-end, POST with explicit cache keys or GET for short queries remains more predictable. I would add interoperability tests that verify body forwarding, retry behavior, and cache variance before exposing QUERY in production.

## Similar posts on daily.dev

- [HTTP QUERY: The New Method That Fixes a Decades-Old Problem](https://daily.dev/posts/http-query-the-new-method-that-fixes-a-decades-old-problem-sp7tnm5fm) · Medium · 84 upvotes · 11 comments
- [HTTP gets a QUERY method so complex searches can stop pretending to be POST](https://daily.dev/posts/http-gets-a-query-method-so-complex-searches-can-stop-pretending-to-be-post-mk7367aia) · DEVCLASS · 294 upvotes · 16 comments
- [Meet HTTP QUERY: The Newest HTTP Method You Probably Haven’t Used Yet](https://daily.dev/posts/meet-http-query-the-newest-http-method-you-probably-haven-t-used-yet-xysweb0vy) · RUBYLAND · 0 upvotes · 0 comments
- [The 16-Year Wait is Over: Meet the New HTTP QUERY Method](https://daily.dev/posts/the-16-year-wait-is-over-meet-the-new-http-query-method-lzuz1brs8) · Medium · 2 upvotes · 0 comments

---

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

[View this post on daily.dev](https://daily.dev/posts/why-http-needed-a-new-method-after-30-years---meet-query-a5uhffgpn)

```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":"Why HTTP needed a new method after 30 years - meet QUERY","url":"https://daily.dev/posts/why-http-needed-a-new-method-after-30-years---meet-query-a5uhffgpn","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/why-http-needed-a-new-method-after-30-years---meet-query-a5uhffgpn"},"datePublished":"2026-07-23T04:07:35.066Z","dateModified":"2026-09-14T08:53:33.254Z","description":"HTTP is getting a new method called QUERY that solves a 30-year-old workaround. GET cannot carry a request body, forcing developers to misuse POST for complex...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/dfa2a63115d47f8aabe1b3da9787f35f?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/dfa2a63115d47f8aabe1b3da9787f35f?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","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":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/why-http-needed-a-new-method-after-30-years---meet-query-a5uhffgpn","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":12},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"architecture","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"Why HTTP needed a new method after 30 years - meet QUERY"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/why-http-needed-a-new-method-after-30-years---meet-query-a5uhffgpn","comment":[{"@type":"Comment","text":"The semantics are appealing, but the deployment path is the hard part: reverse proxies, WAFs, CDN cache keys, and generated clients must all preserve the method and body. Until support is end-to-end, POST with explicit cache keys or GET for short queries remains more predictable. I would add interoperability tests that verify body forwarding, retry behavior, and cache variance before exposing QUERY in production.","datePublished":"2026-07-30T16:13:10.617Z","url":"https://daily.dev/posts/A5UhfFgPn#c-n7npikjUr","author":{"@type":"Person","name":"Ahmet Özel","url":"https://daily.dev/ahmetozel","image":"https://avatars.githubusercontent.com/u/70992231?v=4"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/why-http-needed-a-new-method-after-30-years---meet-query-a5uhffgpn#faq","mainEntity":[{"@type":"Question","name":"What is the HTTP QUERY method and why was it created?","acceptedAnswer":{"@type":"Answer","text":"QUERY is a proposed HTTP method that combines GET's read intent and idempotency with POST's ability to carry a request body. It exists because GET cannot safely carry complex parameters (URL length limits around 8000 characters, parameters exposed in logs, and messy encoding of nested structures), while POST works but isn't idempotent, so responses can't be cached, forcing every duplicate search to hit the server and database. Developers designing search APIs can track emerging standards like the QUERY method on daily.dev before committing to a workaround."}},{"@type":"Question","name":"Why can't POST requests be cached the way GET requests can?","acceptedAnswer":{"@type":"Answer","text":"POST responses cannot be cached reliably because POST is not idempotent - calling it multiple times with the same input can produce different results or side effects, so a cache cannot assume identical output for identical input. GET, by contrast, is idempotent and safe to cache at the CDN or application layer, which is why developers using POST for search queries lose that caching benefit entirely. Anyone weighing caching tradeoffs between GET and POST can follow this kind of API design reasoning on daily.dev."}},{"@type":"Question","name":"Is the HTTP QUERY method supported by browsers and servers yet?","acceptedAnswer":{"@type":"Answer","text":"Not universally. QUERY exists only as an IETF draft proposal (draft-ietf-httpbis-safe-method-w-body) and is not yet supported across all browsers, servers, and CDNs, though it is gaining traction because it addresses a widely recognized limitation in how complex read queries are handled over HTTP. Teams planning ahead for API standards changes can keep tabs on QUERY method adoption via daily.dev."}}]}
```

