Dev Encyclopedia
ArticlesToolsContactAbout

Get notified when new content drops

No spam. Just new articles, tools, and updates straight to your inbox.

Dev Encyclopedia

A reference for builders

Content

  • Articles
  • Tools
  • About
  • Contact

Connect

  • support@devencyclopedia.com
  • RSS Feed

Legal

  • Privacy Policy
  • Terms of Service
  • Disclaimer

© 2026 Dev Encyclopedia

Back to top ↑
  1. Home
  2. /
  3. Tools
  4. /
  5. HTTP QUERY Support Matrix
Free · Live100% Client-Side

Does Your Stack Support HTTP QUERY Yet?

A maintained compatibility matrix for RFC 10008's HTTP QUERY method across frameworks, proxies, and clients. Search or filter the table below. Data last reviewed 2026-07-07.

Zeeshan Tofiq

Zeeshan Tofiq

Full Stack Developer

How HTTP QUERY Support Matrix works

1

Browse or search the table

Type a framework, proxy, or client name into the search box, or leave it blank to see every entry. The search matches against the name, the note, and the status label.

2

Filter by category

Use the category tabs to narrow the table to Web Frameworks, Proxies / CDNs, or HTTP Clients only, so you can check one layer of your stack at a time.

3

Read the status badge

Each row shows a status: Supported, Partial, Not Yet, or Unknown, based on a manual review of the project's documentation and issue tracker at the time it was last verified.

4

Check the note and version/date

The note explains what the status actually means in practice, for example whether a workaround exists, and the version or date column shows when native support landed, where applicable.

5

Follow the source link to verify

Every entry links to its authoritative source, a GitHub issue, official documentation, or changelog, along with the date it was last verified, so you can confirm the current status yourself rather than take a snapshot on faith.

What each status means

Supported

Native support for QUERY is confirmed, either the project's own core parses or routes the method directly, or its documented default behavior passes the method through without extra configuration.

When it's used: When a specific version or date can be pointed to, or when documented default behavior confirms the method is handled correctly with no workaround needed.
Example: Node.js core (node:http): QUERY parsing landed natively in Node 21.7.2.
Partial

QUERY can be made to work today, but only with a manual workaround, an in-progress pull request, or inconsistent behavior across implementations or environments.

When it's used: When a documented workaround exists (middleware, custom route mapping) but there is no first-class, built-in method, or when support varies across environments (like browser engines).
Example: Express: no app.query() router method yet, requires intercepting req.method === 'QUERY' in middleware.
Not Yet

A confirmed limitation exists. The project's routing or method handling does not recognize QUERY as a standard verb, and no documented workaround was found at time of review.

When it's used: When the project's own routing guide only documents the standard HTTP verb set and QUERY falls outside of it without custom configuration.
Example: Rails: standard routing helpers (get, post, match) don't recognize QUERY as a verb out of the box.
Unknown

No confirmed status could be established from available documentation as of the last review date. This is not the same as "broken", it means the specific behavior needs to be verified against the project's current release.

When it's used: When a project's docs or changelog don't explicitly address QUERY method handling, so the honest answer is that it hasn't been confirmed either way.
Example: Cloudflare: no confirmed documentation of QUERY-specific proxy or caching behavior found as of this review.

Table reference

Every row in the matrix follows the same structure. Here is what each column means:

ColumnMeaning
NameThe framework, proxy/CDN, or client being tracked.
StatusOne of Supported, Partial, Not Yet, or Unknown, defined in the section above.
Version / DateThe version number or date native support landed, where a specific one is documented.
NoteA short explanation of what the status means in practice for that specific entry, including any workaround.
SourceA link to the authoritative source (GitHub issue, official docs, or changelog) plus the date that source was last checked.

When to use HTTP QUERY Support Matrix

ScenarioWhat to check
Deciding whether to adopt QUERY for a new search endpointYour web framework's status, plus any proxy or CDN in front of your API
Building a public API called from browsersThe fetch() row under HTTP Clients, since browser support is the most inconsistent layer
Running behind Cloudflare, Akamai, or an AWS ALBThe relevant Proxies / CDNs row for passthrough or caching behavior
Reviewing a PR that adds a QUERY routeYour framework's status to confirm whether the workaround pattern used matches current best practice
Choosing between Postman, Insomnia, or curl for manual testingThe HTTP Clients rows to confirm which tool supports typing a custom method
Revisiting an old decision to skip QUERY six months agoThe status and last verified date for your specific framework, since support evolves quickly

Frequently Asked Questions

What is HTTP QUERY Support Matrix and what does it show?

HTTP QUERY Support Matrix is a browsable, filterable reference showing current support status for the HTTP QUERY method (RFC 10008) across web frameworks (Express, Fastify, Hono, Rails, Spring, Django, ASP.NET Core, and Node.js core), reverse proxies and CDNs (nginx, Cloudflare, Akamai, Vercel, AWS ALB), and HTTP clients (curl, fetch, Postman, Insomnia, axios).

Each entry shows a support status, the version or date support landed where applicable, a short note explaining the current state, and a link to the authoritative source, a GitHub issue, official docs, or changelog, so you can verify the claim yourself rather than take it on faith.

How is this different from caniuse.com or checking GitHub issues directly?
HTTP QUERY Support Matrixcaniuse.com / individual GitHub issues
Covers server-side frameworksYesNo, caniuse.com is browser-focused; issues are scattered one repo at a time
Covers proxies/CDNsYesNo single consolidated source
Covers HTTP clientsYesPartially, browser-only on caniuse.com
One place to check your whole stackYesNo, requires checking each project's tracker separately
Links to authoritative sourcesYes, per entryN/A, is the source

caniuse.com is the gold standard for browser feature compatibility, but HTTP QUERY as a server-side method is outside its typical scope. Individual GitHub tracking issues, like nodejs/node#51562 and expressjs/express#5615, are accurate and authoritative, but scattered across dozens of separate repositories with no single place to check status across your entire stack at once. This tool consolidates that into one filterable table.

Does this tool send any data to a server?

No. The compatibility dataset is a static, manually curated list bundled directly into the page. Searching and filtering happen entirely in your browser with plain JavaScript array operations. There is no backend, no API call, and no data collected about what you search for.

How do I check whether my specific stack is ready to adopt QUERY?

Use the category tabs to narrow to Web Frameworks, Proxies / CDNs, or HTTP Clients, then search for the specific piece of your stack, for example your framework, your CDN, and the clients calling your API. Check all three layers before committing, since a request can fail at any point along the path even if your framework itself supports QUERY.

text
Example: an Express API behind Cloudflare, called from a browser
1. Search "Express" under Web Frameworks -> Partial, manual workaround required
2. Search "Cloudflare" under Proxies / CDNs -> verify current passthrough behavior
3. Search "fetch" under HTTP Clients -> Partial, inconsistent across browser engines

All three need to work for a QUERY request to succeed end to end.

For the actual Express workaround code, see the companion guide on implementing HTTP QUERY in Express and Node.js.

How often is this data updated, and what if it's wrong or out of date?

This is a manually maintained snapshot, not a live-updating feed pulled from each project's API. Every entry carries its own "last verified" date, and the page shows an overall "data last reviewed" date, so you can judge how current the information is before relying on it.

ℹ Info

Framework and proxy support for a brand-new HTTP method changes quickly. If you find an entry that's out of date or incorrect, let us know through the contact page so it can be corrected.

What's the difference between "Not Yet" and "Unknown" status?

"Not Yet" means there is a confirmed limitation: the framework or proxy has been checked and does not currently support QUERY without a workaround, or actively rejects it. "Unknown" means no confirmed status could be established as of the last review, either because the project's documentation doesn't address it directly or because behavior needs to be verified against the current release before it can be marked with confidence. Treat "Unknown" as a prompt to verify yourself against current docs, not as a claim that it doesn't work.

Related reading

Guide

HTTP QUERY Method in Express and Node.js

The working implementation this matrix is the companion reference for: raw Node.js, the Express middleware workaround, CORS, and a fallback pattern.

Guide

Hono.js Tutorial: REST API with Zod, JWT & Cloudflare Workers

For a framework that already supports arbitrary HTTP methods through its router, see how Hono structures routing, middleware, and validation.

Zeeshan Tofiq

Zeeshan Tofiq

Full Stack Developer

Full stack developer with over 6 years of experience building production applications. Writes practical guides on JavaScript, TypeScript, React, Node.js, and cloud infrastructure. Focused on helping developers solve real problems with clean, maintainable code.

Enjoyed this article?

Get practical dev guides, tool updates, and new articles delivered straight to your inbox. No spam, unsubscribe anytime.

NameStatusVersion / DateNoteSource

Node.js core (node:http)

Web Framework

Node's HTTP parser accepts QUERY as a valid method natively. A raw node:http server handles req.method === 'QUERY' with no extra configuration.

SupportedSince v21.7.2Node's HTTP parser accepts QUERY as a valid method natively. A raw node:http server handles req.method === 'QUERY' with no extra configuration.nodejs/node#51562

Verified 2026-07-07

Express

Web Framework

No first-class app.query() router method yet. Requires a manual middleware workaround that intercepts req.method === 'QUERY' before Express's method-based routing.

PartialN/ANo first-class app.query() router method yet. Requires a manual middleware workaround that intercepts req.method === 'QUERY' before Express's method-based routing.expressjs/express#5615

Verified 2026-07-07

Fastify

Web Framework

No confirmed first-class QUERY route shorthand as of this review. Check the current changelog before depending on native support.

UnknownN/ANo confirmed first-class QUERY route shorthand as of this review. Check the current changelog before depending on native support.Fastify docs

Verified 2026-07-07

Hono

Web Framework

Hono's router supports arbitrary method strings via app.on(method, path, handler), but a dedicated app.query() shorthand is not confirmed. Verify against current routing docs.

UnknownN/AHono's router supports arbitrary method strings via app.on(method, path, handler), but a dedicated app.query() shorthand is not confirmed. Verify against current routing docs.Hono docs

Verified 2026-07-07

Ruby on Rails

Web Framework

Rails routing does not recognize QUERY as a standard verb out of the box, so routes declared with the usual get/post/match helpers will not match it without custom match constraints.

Not YetN/ARails routing does not recognize QUERY as a standard verb out of the box, so routes declared with the usual get/post/match helpers will not match it without custom match constraints.Rails routing guide

Verified 2026-07-07

Spring (Spring MVC / WebFlux)

Web Framework

Spring's RequestMapping model can map arbitrary methods with a custom RequestMethod, but there is no built-in @QueryMapping-style annotation for RFC 10008 yet. Track the Spring Framework issue tracker for native support.

PartialN/ASpring's RequestMapping model can map arbitrary methods with a custom RequestMethod, but there is no built-in @QueryMapping-style annotation for RFC 10008 yet. Track the Spring Framework issue tracker for native support.Spring Framework docs

Verified 2026-07-07

Django

Web Framework

Django views can branch on request.method for any string, so QUERY can be handled manually, but no confirmed built-in shorthand exists. Verify against current release notes.

UnknownN/ADjango views can branch on request.method for any string, so QUERY can be handled manually, but no confirmed built-in shorthand exists. Verify against current release notes.Django docs

Verified 2026-07-07

ASP.NET Core

Web Framework

Attribute routing supports [AcceptVerbs("QUERY")] as a manual workaround, but no confirmed [HttpQuery] first-class attribute exists yet. Verify against current release notes.

UnknownN/AAttribute routing supports [AcceptVerbs("QUERY")] as a manual workaround, but no confirmed [HttpQuery] first-class attribute exists yet. Verify against current release notes.ASP.NET Core docs

Verified 2026-07-07

nginx

Proxy / CDN

nginx proxies HTTP methods transparently by default. Unless a limit_except directive restricts allowed methods on a location block, QUERY requests pass through unmodified.

SupportedN/Anginx proxies HTTP methods transparently by default. Unless a limit_except directive restricts allowed methods on a location block, QUERY requests pass through unmodified.nginx docs

Verified 2026-07-07

Cloudflare

Proxy / CDN

No confirmed documentation of QUERY-specific handling in Cloudflare's proxy or caching rules as of this review. Verify against current Cloudflare docs, especially around cache key configuration for a method that carries a body.

UnknownN/ANo confirmed documentation of QUERY-specific handling in Cloudflare's proxy or caching rules as of this review. Verify against current Cloudflare docs, especially around cache key configuration for a method that carries a body.Cloudflare docs

Verified 2026-07-07

Akamai

Proxy / CDN

No confirmed documentation of QUERY-specific handling as of this review. Verify against current Akamai property configuration docs before relying on default passthrough behavior.

UnknownN/ANo confirmed documentation of QUERY-specific handling as of this review. Verify against current Akamai property configuration docs before relying on default passthrough behavior.Akamai TechDocs

Verified 2026-07-07

Vercel

Proxy / CDN

No confirmed documentation of QUERY-specific restrictions in Vercel's edge network as of this review. Serverless and edge functions generally receive the method as-is, but verify against current docs.

UnknownN/ANo confirmed documentation of QUERY-specific restrictions in Vercel's edge network as of this review. Serverless and edge functions generally receive the method as-is, but verify against current docs.Vercel docs

Verified 2026-07-07

AWS Application Load Balancer

Proxy / CDN

ALB listener rules route based on path and host by default and are generally method-agnostic, but custom HTTP methods have historically had inconsistent support across AWS's edge products. Verify against current ALB documentation before depending on it.

UnknownN/AALB listener rules route based on path and host by default and are generally method-agnostic, but custom HTTP methods have historically had inconsistent support across AWS's edge products. Verify against current ALB documentation before depending on it.AWS ELB docs

Verified 2026-07-07

curl

HTTP Client

curl's -X flag sends any method string verbatim, including QUERY, and has for years. This is the most reliable way to test a QUERY endpoint today.

SupportedN/Acurl's -X flag sends any method string verbatim, including QUERY, and has for years. This is the most reliable way to test a QUERY endpoint today.curl docs

Verified 2026-07-07

fetch() (Browsers)

HTTP Client

QUERY is not on the Fetch spec's forbidden method list, but real-world support is inconsistent across browser engines as the method is still new. Check MDN's current compatibility table before relying on client-side fetch(method: 'QUERY') in production.

PartialN/AQUERY is not on the Fetch spec's forbidden method list, but real-world support is inconsistent across browser engines as the method is still new. Check MDN's current compatibility table before relying on client-side fetch(method: 'QUERY') in production.MDN Fetch API

Verified 2026-07-07

Postman

HTTP Client

Modern Postman versions accept custom or recently added HTTP methods directly in the method dropdown, or let you type a custom method name.

SupportedN/AModern Postman versions accept custom or recently added HTTP methods directly in the method dropdown, or let you type a custom method name.Postman Learning Center

Verified 2026-07-07

Insomnia

HTTP Client

Insomnia allows typing a custom HTTP method on a request, so QUERY works the same as any other method.

SupportedN/AInsomnia allows typing a custom HTTP method on a request, so QUERY works the same as any other method.Insomnia docs

Verified 2026-07-07

axios

HTTP Client

axios passes the method string through to its underlying adapter. In Node.js this generally works since it sits on top of node:http, but in a browser it inherits the same inconsistency as fetch()/XHR for a brand-new method.

PartialN/Aaxios passes the method string through to its underlying adapter. In Node.js this generally works since it sits on top of node:http, but in a browser it inherits the same inconsistency as fetch()/XHR for a brand-new method.axios docs

Verified 2026-07-07

Showing 18 of 18 entries. Data last reviewed 2026-07-07. This is a manually maintained snapshot, not a live-updating feed, see the FAQ below for how to suggest a correction.