HTTP QUERY (RFC 10008) solves a real problem: sending a request body with "read" semantics, without the hacks people use GET or POST for today. But adopting it isn't just "does my framework support it."
A QUERY request has to succeed at three separate layers to actually work end to end:
Your web framework. Some, like Hono, route arbitrary methods natively. Others, like Express, need you to intercept req.method === 'QUERY' manually since there's no built-in app.query() yet.
Whatever sits in front of your API. Proxies and CDNs like Cloudflare, nginx, or an AWS ALB can pass QUERY through cleanly, mangle it, or have undocumented behavior nobody's confirmed yet.
The client making the request. Browser fetch() support is still inconsistent across engines, and tools like curl, Postman, and axios each have their own level of support.
Test only one layer and you can end up debugging a "broken" QUERY request that's actually working fine in your framework and failing in the proxy, or vice versa.
I've been using a maintained, filterable compatibility matrix that tracks all three layers in one place, frameworks, proxies/CDNs, and HTTP clients, with each entry linked to its authoritative source (GitHub issue, docs, or changelog) and a "last verified" date, since support for a brand-new method changes fast.
Full matrix here: https://devencyclopedia.com/tools/http-query-support-matrix
If you're on Express specifically, there's also a companion guide walking through the actual middleware workaround.
Top comments (0)