For as long as most of us have built web applications, our data retrieval options have felt like a constant architectural compromise.

When designing a search endpoint, a complex filter panel, or a deep nested query, we faced a frustrating fork in the road:

Use GET: It’s safe, idempotent, and heavily cacheable by CDNs and browsers. But it forces you to serialize massive JSON objects or complex search criteria into a URL query string, risking browser length limits, unreadable parameters, and sensitive data leaking into server access logs.

Use POST: It gives you a clean request body to send rich payloads securely. However, POST is semantically non-safe and non-idempotent by default. Caching layers, load balancers, and reverse proxies will refuse to cache it, and automatic network retries become dangerous.

We’ve lived with these workarounds for decades. But the web architecture landscape is shifting. The IETF has officially standardized a brand-new core method: QUERY (RFC 10008).