RFC 10008, published June 15, 2026, introduces the HTTP QUERY method — a new HTTP verb that accepts a request body while remaining safe, idempotent, and cacheable, unlike POST. This fills a long-standing gap for APIs (especially JSON-RPC) that need to send structured query payloads but couldn't benefit from HTTP caching because POST signals state mutation. The QUERY method allows reverse proxies and CDNs to cache responses using both the request body and its metadata as the cache key, enabling HTTP-native caching for read-heavy RPC-style APIs. Code examples are provided for Go (using net/http) and Rust (using reqwest), both of which support custom HTTP method strings without additional dependencies.
Questions this post answers
What is the HTTP QUERY method defined in RFC 10008?
QUERY is a new HTTP method, published in RFC 10008 on June 15, 2026, that accepts a request body while remaining safe, idempotent, and cacheable. It fills the gap between GET, which has no body, and POST, which is neither safe nor idempotent, making it well suited for read operations that need to send structured query data like JSON-RPC payloads. Track new HTTP method proposals like this one on daily.dev as you plan API and SDK upgrades.
How do I send an HTTP QUERY request in Go using net/http?
Go's net/http package supports arbitrary method strings, so you can call http.NewRequestWithContext with "QUERY" as the method, attach a JSON body, and send it with http.DefaultClient.Do, with no extra dependencies required. This makes it straightforward to add QUERY support to existing Go HTTP clients or JSON-RPC SDKs. Developers wiring up new HTTP methods in Go clients can follow implementation patterns like this on daily.dev.
Why is caching JSON-RPC POST requests hard, and how does the QUERY method fix it?
JSON-RPC sends its method and parameters as a JSON body, which forces the request onto POST, and POST is treated as state-changing by caches and intermediaries, so CDN caching is unavailable and teams end up building custom application-level caching. QUERY solves this because RFC 10008 requires the cache key to incorporate the request body and its metadata, letting reverse proxies and CDNs cache identical queries natively, even normalizing the body to improve hit rates. Teams weighing HTTP-native caching for RPC-style APIs can follow this kind of protocol change on daily.dev.
Share this post