HTTP 二十年来首个新方法:QUERY 解决了什么问题
来源:dev.to — 2026-07-31
📋 概述
2026 年 6 月,IETF 发布了 RFC 10008,定义了二十多年来第一个新 HTTP 方法 QUERY。它解决了开发者长期以来的痛点:GET 无法携带请求体且有 URL 长度限制,POST 虽能携带任意请求体但被 HTTP 认为会改变状态,导致无法安全缓存和重试。QUERY 兼具 GET 的安全幂等语义和 POST 的请求体能力,是继 2010 年 PATCH 方法之后 HTTP 动词的首次重大创新。
🔑 核心要点
- QUERY 方法:兼具 GET 的安全幂等性(safe, idempotent, cacheable)和 POST 的请求体能力
- RFC 10008:2026 年 6 月 IETF 正式标准化,结束开发者长达十余年的"用 POST 做查询"的权宜之计
- 自动缓存和重试:因为 QUERY 不改变服务器状态,代理可以安全缓存响应、客户端可以安全重试超时请求
- 无 URL 长度限制:请求体支持携带 SQL、JSONPath 等任意复杂查询,突破 GET 的 8000 字符限制
- axios 和 fetch:axios({method:'QUERY',...}) 和 fetch 均可直接使用,无需额外插件——底层 HTTP 客户端原生支持自定义方法
💡 金句
QUERY is a GET with a body. That's it.
👍 0
👎 0
← 返回 Dev.to 首页