新方法
认识 HTTP QUERY
QUERY 是一个安全、幂等、可携带请求体的查询方法 —— 相当于“带 body 的 GET”。它让复杂的查询条件放进请求体,而不必塞进超长 URL,也不必借用语义并不匹配的 POST。
学习 · 测试 · 验证 HTTP,含新方法 QUERY
/api/echo
→ request
QUERY /productsNEWAccept: application/jsonContent-Type: application/json { "category": "boots", "inStock": true}← response
200 OKContent-Location: /products?…Cache-Control: max-age=60 { "results": 42, "cacheable": true}同一搜索,四种实现
同一个商品搜索,四种实现方式的对比:
左右滑动查看全部方法,QUERY 已优先展示。
| 能力 | QUERY | GET · URL | GET · body | POST |
|---|---|---|---|---|
| 请求体 (Request body) | JSON | 无 | 语义未定义 · 应避免 | JSON |
| 安全 Safe(无副作用) | ✓ | ✓ | ✓ | ✗ |
| 幂等 Idempotent | ✓ | ✓ | ✓ | ✗ |
| 响应可缓存 Cacheable | ✓经 Content-Location | ✓ | ~不可靠 · 未定义 | ~默认否 · 需显式声明 |
| 过滤条件不进 URL | ✓ | ✗ | ✓ | ✓ |
| 不受 URL 长度限制 | ✓ | ✗~2KB 上限 | ✓ | ✓ |
| 已标准化并广泛支持 | ~新 RFC · 采用早期 | ✓ | ✓ | ✓ |