6/23/2026 at 9:15:58 AM
"QUERY is just GET""Using GET with a Body works"
Seems like this is going everyone's head. You're not supposed to use GET with a Body, this is a hack, therefore having an explicit method makes sense.
Just because it works, doesn't mean its the right way
by ramon156
6/23/2026 at 10:11:14 AM
Using GET with a Body doesn't work if you try using it in the browser with JS fetch for example[1]. Additionally, a lot of existing web servers by default ignore GET requests with a body.The use case of QUERY is because POST conveys non-safe, non-idempotent requests which can potentially modify stuff according to the REST spec. GET requests on the other hand convey retrieval of a resource. However, due to GET requests not having a body, there's a limit to the amount of data you can put in the URL and you also cannot put sensitive data in it.
Additionally, GET requests are meant to be highly cacheable by default while a lot of the QUERY type requests are usually meant more for one-shot access.
QUERY is meant to address these limitations.
by EnnEmmEss
6/23/2026 at 12:54:08 PM
There's no such thing as REST spec. The closes mechanism to actual REST is to create a resource using POST and then query it using GET. You have the added benefit of the resource being cacheable.by nesarkvechnep
6/24/2026 at 1:43:22 AM
To clarify, by REST spec I meant the state of access defined by https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/....by EnnEmmEss
6/24/2026 at 2:10:11 PM
This is just HTTP. The definitive guide to REST is "Architectural Styles and the Design of Network-based Software Architectures" by Roy Fielding.by nesarkvechnep
6/23/2026 at 3:26:12 PM
[dead]by darig
6/23/2026 at 8:18:34 PM
>Additionally, a lot of existing web servers by default ignore GET requests with a body.I think the point made is that _all_ existing web servers have no idea what a "QUERY" is anyway, so changes need to be made anyhow.
by krackers
6/24/2026 at 1:44:57 AM
Not exactly. OPTIONS lets servers tell you that QUERY is supported if the client requests it and Status Code 405 lets servers tell you that QUERY is not supported. That's very different from the current landscape where several proxy servers and web servers simply ignore the Body of a GET request.by EnnEmmEss
6/23/2026 at 11:17:46 AM
Yep. We had to change our app when we took on a client with a strictly configured WAF which rejected GET with body. I know I have come across multiple points where I have used POST when I know it is wrong, or GET with a body, when I know it is wrong. So I welcome QUERY!by jefc1111
6/23/2026 at 1:04:31 PM
AWS CloudFront blocks GET requests with a body, so it doesn't even have to be a particularly strict setup or an explicit WAF.by entuno
6/23/2026 at 9:46:56 AM
I’ve seen a framework strip body content off GET requests, so doing hacky things doesn’t even always work. The QUERY method is a welcome additionby ronbenton
6/23/2026 at 10:02:10 AM
Insofar as I'm concerned, a GET request with a body is an attack-shaped aberration. E.g. Somebody who's trying to get me to mix up validating query string parameters and request body parameters.Hacky things not working is a feature, not a bug.
by pdpi
6/23/2026 at 10:32:56 AM
I'd say it's the framework doing the hacky thing. It should be optional. AFAIK, the HTTP spec allows for it, under certain conditions. "A client SHOULD NOT generate content in a GET request unless it is made directly to an origin server that has previously indicated, in or out of band, that such a request has a purpose and will be adequately supported."by tgv
6/23/2026 at 10:03:34 AM
Is the stripper service in question already implementing it?by psychoslave
6/23/2026 at 10:44:33 AM
Some security/ API gateway block requests when it's a GET with a body.by Bombthecat
6/23/2026 at 9:29:17 AM
> Just because it works, doesn't mean its the right way
Tell that to anybody in the business long enough to decipher someone else's Perl!
by dotancohen
6/24/2026 at 6:41:24 AM
Hey, remember what Larry said, there's more than one way to do things ;Pby ivanhoe
6/23/2026 at 11:56:21 AM
It's possible that the slogan "There's one obvious way to do it" as a riposte to "There's more than one way to do it" was more responsible for Python's first wave of success than anything else.by nixon_why69
6/23/2026 at 5:54:34 PM
Why not just add an optional body to the spec for GETby somekindaguy
6/23/2026 at 11:40:40 AM
It sounds like GET with a body is just undefined behavior.Why not just standardize it? It seems to be a better way than adding a new method.
by maxloh
6/23/2026 at 6:20:23 PM
1) Changes to how GET works likely require a new HTTP version to assure maximum breaking change awareness. We're already in a Postel's Law state where we have HTTP/1.1, HTTP/2, and HTTP/3 all running side-by-side for reasons that all three are very different under the hood at even the transport layers. Do we really want to add HTTP/1.2, HTTP/2.1, and HTTP/3.1 to that list? An entirely new method is easier to apply horizontally to all three versions, because the HTTP standard already allows that as an extension mechanism. (There's an IANA registry for HTTP methods and HTTP methods such as WebDAV's have always been their own standards outside of HTTP RFCs.)2) A plain separation between GET should only accept query string parameters and QUERY should only accept body parameters potentially reduces attack surface of attackers trying to mix and match the two to find potential order of precedence attacks.
by WorldMaker
6/23/2026 at 1:51:04 PM
A lot of un-updateable software out there that strip the body. Especially when the companies behind it doesn't provide support anymore.by Vosporos
6/23/2026 at 2:11:38 PM
will those support QUERY?by earthdeity
6/23/2026 at 9:55:04 AM
The whole stack is a pile of badly designed hacks. Not much point in fixing it now. I mean they can’t even spell referrer correctly.by cryo32
6/23/2026 at 12:19:59 PM
You're missing the point. Using GET with a body is currently unspecified, so of course you're not supposed to do it (though you're not forbidden to either).But specifying this behavior would get you in the same situation as adding a new method: everything not up to date with the spec will keep behaving poorly but newer system would work.
The only benefit of adding a new method is for marketing/awareness: it may end up getting support faster than the alternative because it sounds as a sexy new thing to implement. This kind of benefit should not be overlooked, but we should also acknowledge its limits: most of enterprise stuff (WAF, frameworks, etc.) are not going to work overnight just because it's a new method instead of a spec change.
by stymaar
6/23/2026 at 10:57:49 AM
> "Using GET with a Body works"Except it doesn't. Some API gateways outright strip request bodies from GET requests to prevent them from being forwarded.
It sounds like most people with the "just use GET" nonsense are far from having any experience in cloud computing.
by locknitpicker
6/23/2026 at 12:02:47 PM
QUERY won't be supported by them either.So, change is required. Just change GET to allow for body and move on.
Most of the systems that are blocking GET/body could be easily tweaked to allow it. Today. As is.
QUERY will likely need firmware updates, core engine updates, etc.
Meanwhile, tweaking GET is a rule change.
by topham
6/23/2026 at 2:33:28 PM
Yeah I really don't understand the anti-GET-body argument."Using GET with a body isn't in the spec, WAFs and webservers that haven't been updated might reject it!"
Ok, QUERY wasn't in the spec when those were written either. What do you expect those appliances to do with a totally unknown verb?
It's a welcome addition but the new method is pure marketing. There's no reason the update couldn't have been to expand GET instead of add support for QUERY.
by akersten
6/23/2026 at 6:25:04 PM
> What do you expect those appliances to do with a totally unknown verb?405 Method Not Allowed
We have existing standards for unsupported methods.
by WorldMaker
6/24/2026 at 6:09:25 AM
> Using GET with a body isn't in the spec,It's exactly the opposite. The HTTP spec does cover GET with bodies. However, what you fail to account is that the spec specifies they are invalid and a GET with body is meaningless, and represents a potential attack.
by locknitpicker
6/23/2026 at 6:24:13 PM
Sure but 405 Method Not Allowed is a response you can fallback from, whereas "body was silently stripped by a middlebox" is not as easy to know when it happens, much less deal with.by WorldMaker
6/24/2026 at 6:05:38 AM
> QUERY won't be supported by them either.Actually you are quite wrong. HTTP already accommodaties nonstandard methods, so HTTP-compliant servers do support whatever string you put together as the method.
What you are failing to understand is that this proposal defines both a method and its semantics. This means the expected behavior regarding idempotency, safety, cacheabiliry. Nonstandard methods by design are interpreted as being unsafe.
What you are also failing to understand is that GET is explicitly designed to not have a request body. This means that a GET with a body is interpreted as something that violates specifications and is potentially an attack such as request smuggling. Again, some API gateways strip them as a security precaution.
> Most of the systems that are blocking GET/body could be easily tweaked to allow it. Today. As is.
Utter nonsense. You are talking about things like home routers and old phones.
> QUERY will likely need firmware updates, core engine updates, etc.
Not really, only if those devices do not comply with HTTP.
The real value proposition is the semantics of a QUERY operarion regarding safety and caching. It's not a coincidence that this proposal is backed by the likes of Cloudflare. All HTTP compliant requests are just forwarded through all internet boxes, and the likes of Cloudflare sits at the edge safely caching them.
by locknitpicker
6/23/2026 at 2:12:29 PM
So a POST with explicit caching semantics?by bellowsgulch
6/23/2026 at 3:06:14 PM
no, a POST that is idempotent. caching is an optional side benefit.by em-bee