IETF 发布 RFC 10008:定义 QUERY 方法,兼具 GET 语义与 POST 表达能力

📅 2026/7/1 4:08:28
IETF 发布 RFC 10008:定义 QUERY 方法,兼具 GET 语义与 POST 表达能力
【导语IETF 最新发布的 RFC 10008 正式定义了 HTTP 新成员 QUERY 方法它结合了 GET 的安全幂等与 POST 带请求体的能力解决了 GET 和 POST 存在的问题。】HTTP 新成员QUERY 方法诞生IETF 发布的 RFC 10008 为 HTTP 家族增添了新成员 QUERY 方法。该方法在 HTTPbis 工作组中早有讨论草案名为 draft - ietf - httpbis - safe - method - w - body如今终于定稿。QUERY 方法解决 GET 与 POST 痛点GET 方法存在 URL 长度有限、编码复杂查询参数不自然的问题POST 虽能带请求体但不是幂等的CDN 不能缓存中间件不敢自动重试。而 QUERY 方法要在协议层面同时实现 GET 的语义和 POST 的表达能力。根据规范QUERY 是安全且幂等的请求体内容由 Content - Type 决定可包含 SQL、JSONPath、XSLT 或普通表单数据。服务端通过新的响应头 Accept - Query 告知客户端接受的查询格式。QUERY 方法的设计细节Content - Type 是强制的不带该请求头的服务端必须返回 400。响应可以用 Content - Location 指向本次查询结果用 Location 指向等效资源客户端下次可用 GET 直接访问。QUERY 的响应可以被缓存但缓存键必须包含完整请求内容缓存中间件可做语义归一化除非客户端发了 no - transform。跨域 QUERY 请求需要 OPTIONS 预检不是 CORS 安全方法。名称选择背后的考量该草案作者是 HTTP 工作组的熟面孔早期甚至考虑过复用 WebDAV 的 SEARCH 方法但最终选择了 QUERY因为它“更好地捕捉了与 URI 查询组件的关联”。编辑观点QUERY 方法的出现为 HTTP 协议带来了新的可能有效解决了 GET 和 POST 的部分痛点有望在未来的网络应用中发挥重要作用推动网络技术的进一步发展。