The Hacker News discussion around the proposed QUERY HTTP method reveals three primary, strongly debated themes:
1. The Conflict Between Semantic Purity and Practical Need
A central theme is the tension between strictly adhering to established HTTP semantics (where GET is safe and POST is for state change) and the practical need to perform "read" operations that require a request body (often due to URL length limits or complex filtering).
- Supporting Quote: Users acknowledge the real-world motivation, noting that existing practices often break semantics:
> "The cases tend to look like this:
- An endpoint was implemented as a GET endpoint, since it’s for getting data, with the search terms in the query parameters. The search term got too long, breaking a critical behavior in production environments." (gbear605)
2. The Interoperability and Infrastructure Problem of Modifying GET
Many users argue that simply allowing bodies on existing GET requests is fundamentally broken because the infrastructure of the internet (proxies, CDNs, load balancers, firewalls) is explicitly designed to ignore or strip bodies from GET requests, sometimes seeing them as security risks (request smuggling).
- Supporting Quote: Experienced users emphasize that infrastructure actively fights against anomalous
GETrequests: > "Your GET request can modify state. But if your request exceeds a browser’s timeout threshold, the browser will retry it. And then you get to spend a few days debugging why a certain notification is always getting sent three times (ask me how I know this)" (notatoad) > > "Sending a GET request with a body is just asking for all sorts of weird caching and processing issues." (LudwigNagasena)
3. The Value of a New Standard Verb vs. Server-Side Documentation
There is a significant split on whether introducing a new method (QUERY) is beneficial for signaling intent to intermediaries, or whether it's unnecessary overhead, arguing that the behavior should simply be documented (e.g., a POST with specific idempotent guarantees) on the server side.
- Supporting Quote (Pro-New Verb): Those in favor see the new verb as crucial for middleware and infrastructure to correctly interpret safety/caching expectations without needing to parse URLs or rely on out-of-band documentation: > "The semantics are important. GET APIs are expected to be safe, idempotent, and cache-friendly. When you are unable to use GET for technical reasons and move to POST, suddenly none of the infrastructure (like routers, gateways, or generic http libs) can make these assumptions about your API." (flakes)
- Supporting Quote (Against New Verb): Critics argue that the distinction is solely a server constraint and that the client protocol should remain simple, favoring POST or sticking to existing patterns: > "The interpretation of a request is up to the server... QUERY semantics vs generic POST semantics is a receive/server-side decision and thus should not be a syntactic element of client requests, merely a server description of endpoint semantics." (Veserv)