HTTP 方法速查表 - REST/HTTP 请求动词与幂等性大全

设计接口时真正难的往往不是语法,而是判断"这里该用 PUT 还是 PATCH""重试会不会产生重复"。本表按方法语义、幂等性、安全属性、状态码搭配分组,讲清 POST 不幂等、PUT 全量替换而 PATCH 局部更新这些关键差异,并给出前后端约定的常见落法。读完能根据业务语义选出正确的动词,让接口在重试和并发下行为可预期。

参考手册·共 27 条命令·最后更新 2026-08-02
http方法rest幂等api

核心方法 Core Methods 7

GET
获取资源,安全且幂等,不应有副作用
POST
创建子资源或提交处理,非幂等
PUT
完整替换资源,幂等(重复请求结果一致)
PATCH
部分更新资源,通常不幂等(除非语义保证)
DELETE
删除资源,幂等(多次删结果一致)
HEAD
同 GET 但只返回头,用于探活/缓存校验
OPTIONS
查询目标支持的通信选项,CORS 预检用

幂等与安全性 Idempotency & Safety 4

安全方法
GET、HEAD、OPTIONS(不改变服务器状态)
幂等方法
GET、PUT、DELETE、HEAD、OPTIONS
非幂等
POST、PATCH(默认不保证重复请求一致)
Idempotency-Key
POST 重试时用请求头键避免重复创建

状态码搭配 Status Pairing 6

GET → 200 / 304
成功或命中缓存
POST → 201 / 202
创建成功或已接收异步处理
PUT → 200 / 204
替换成功,可返回新资源或空
PATCH → 200 / 204
部分更新成功
DELETE → 204 / 200
删除成功,无内容或返回摘要
方法不允许 → 405
对只支持 GET 的接口发 POST

常见误用 Mistakes 4

用 GET 改状态
违反安全语义,爬虫/预取会误触发副作用
PUT 当 PATCH 用
PUT 需传完整资源,缺字段会被清空
POST 重复提交
无幂等键时重试会创建重复资源
DELETE 返回 200 带正文
更规范是 204 No Content

REST 设计约定 6

GET /users
列表资源(集合)
GET /users/1
单个资源(子资源)
POST /users
新建资源
PUT /users/1
整体替换用户 1
PATCH /users/1
局部更新用户 1
DELETE /users/1
删除用户 1

提示

  • PUT 传完整资源,缺字段会被清空;只想改部分用 PATCH。
  • GET/HEAD/OPTIONS 是安全方法,不要在其中改服务器状态。
  • POST 重试要带 Idempotency-Key,否则可能重复创建资源。
  • HTTP 状态码速查表已单独提供,设计接口时配合本表一起看。

常见问题

http 302 和 307 重定向有什么区别?

两者都是临时重定向,但 302 允许浏览器把 POST 改成 GET(历史上很多实现这么做),307 明确定义要保持原方法与请求体,POST 仍是 POST。301 是永久移动并常把方法改为 GET;要在不丢失语义的前提下保留 POST body,用 307。

http 里 PUT 和 PATCH 到底该用哪个?

PUT 是整资源替换:客户端提交完整表示,缺失字段会被当作清空,且幂等,重复请求结果相同。PATCH 做局部更新,只传要改的字段,允许部分内容,但不保证幂等。设计增量更新接口用 PATCH,全量覆盖或创建用 PUT。

GET 请求可以带请求体吗?

规范允许 GET 带 body,但实际很少可靠:代理、缓存、CDN 可能忽略或丢弃它,且 GET 要求无副作用、可缓存。需要传复杂查询就用 URL 查询参数,数据过长或含敏感结构时改用 POST。别依赖 GET body 这种脆弱约定。

http 幂等性是什么意思,哪些方法幂等?

幂等指同一请求执行一次与执行多次,服务端状态都一致,重复发送无害。GET、PUT、DELETE、HEAD、OPTIONS 是幂等的;POST 不幂等,连续提交会创建多条资源。因此自动重试只能作用于幂等请求,POST 需要靠唯一幂等键等方式去重。

接口返回 404 还是 405,怎么区分?

404 是资源不存在(路径写错或资源已删除),405 是资源存在但方法不被支持(如对只读资源发 DELETE),返回 405 时应带 Allow 头列出允许的方法。路径错误给 404,方法用错给 405;清晰区分更利于联调,部分 API 出于安全边界两种都返回 404。

官方参考来源

下方为命令对应的官方权威文档,供你核对最新用法与深入查阅。

由 巧匠 维护

公开更新于 2026年8月2日,内容持续校对官方文档。

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们