HTTPQUERY

学习 · 测试 · 验证 HTTP —— 方法(含新方法 QUERY)、状态码与实时请求

English

HTTP 方法介绍

涵盖常用方法与新发布的 QUERY 方法。徽章标注每个方法是否 safe / idempotent / cacheable / 允许 body。

QUERYNEW

带请求体的安全查询方法——“带 body 的 GET”。

safe ✓idempotent ✓cacheable ✓body ✓

QUERY(IETF draft draft-ietf-httpbis-safe-method-w-body)是新引入的方法:安全、幂等,且允许携带请求体。它解决了 GET 无法安全携带 body、复杂查询被迫塞进超长 URL 的问题,也避免了用 POST 做查询导致的“不安全/不可缓存”语义错配。响应可缓存,服务器应通过 Content-Location 指明所查询资源的位置作为缓存键。适用于复杂搜索、GraphQL 式查询、需要大量过滤条件的检索场景。

GET

获取资源,不应产生副作用。

safe ✓idempotent ✓cacheable ✓body ✗

最常用的方法,用于读取资源。安全(不改变服务端状态)、幂等、可缓存。请求体在 GET 中没有定义语义,应避免使用。

POST

提交数据,通常创建资源或触发处理。

safe ✗idempotent ✗cacheable ✗body ✓

用于向服务器提交数据。既不安全也不幂等——重复发送可能创建多个资源。常被误用于查询(因为能带 body),但语义上不适合查询,这正是 QUERY 想取代的场景之一。

PUT

整体替换目标资源。

safe ✗idempotent ✓cacheable ✗body ✓

用完整表示替换目标资源。幂等——重复发送同一 PUT 结果一致。若资源不存在通常会创建。

PATCH

对资源做部分修改。

safe ✗idempotent ✗cacheable ✗body ✓

对资源应用部分更新(如 JSON Patch / JSON Merge Patch)。默认不保证幂等,取决于 patch 文档的语义。

DELETE

删除目标资源。

safe ✗idempotent ✓cacheable ✗body ✗

删除指定资源。幂等——删除已删除的资源仍返回一致结果(通常 404/204)。

HEAD

与 GET 相同但只返回响应头,无 body。

safe ✓idempotent ✓cacheable ✓body ✗

用于获取元信息(如 Content-Length、Last-Modified)而不下载正文。安全、幂等、可缓存。

OPTIONS

查询目标资源支持的通信选项。

safe ✓idempotent ✓cacheable ✗body ✗

返回服务器对目标资源支持的方法等信息,常见于 CORS 预检请求(preflight)。