HTTP请求方法表

HTTP请求方法对照表,包含方法名称、用途和特点

常用HTTP方法
方法 用途 特点 幂等性/安全性
GET 获取资源 请求指定的资源,只用于读取数据 幂等 安全
POST 提交数据 向服务器提交数据,通常会改变服务器状态 非幂等 不安全
PUT 更新资源 上传资源,如果资源不存在则创建 幂等 不安全
DELETE 删除资源 删除指定的资源 幂等 不安全
HEAD 获取元信息 与GET相同,但只返回响应头,不返回响应体 幂等 安全
OPTIONS 查询支持的方法 返回服务器支持的HTTP方法 幂等 安全
PATCH 部分更新 对资源进行部分修改 非幂等 不安全
TRACE 追踪路径 回显服务器收到的请求,用于测试或诊断 幂等 安全
CONNECT 建立隧道 建立到服务器的隧道,用于代理 非幂等 不安全
方法对比
GET vs POST
特性 GET POST
数据位置 URL参数 请求体
数据长度 有限制 无限制
安全性 较低 较高
缓存 可缓存 不可缓存
书签 可收藏 不可收藏
PUT vs PATCH
  • PUT:完整替换资源
  • PATCH:部分更新资源
重要概念
幂等性(Idempotent)

多次执行相同操作,结果相同。

  • 幂等:GET、PUT、DELETE、HEAD、OPTIONS
  • 非幂等:POST、PATCH
安全性(Safe)

不会修改服务器资源。

  • 安全:GET、HEAD、OPTIONS、TRACE
  • 不安全:POST、PUT、DELETE、PATCH
RESTful API常用方法
  • GET /users:获取用户列表
  • GET /users/1:获取ID为1的用户
  • POST /users:创建新用户
  • PUT /users/1:更新ID为1的用户
  • DELETE /users/1:删除ID为1的用户
使用示例
GET请求
GET /api/users?page=1&size=10 HTTP/1.1
Host: example.com
Accept: application/json
POST请求
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "张三",
  "email": "zhangsan@example.com"
}
PUT请求
PUT /api/users/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "李四",
  "email": "lisi@example.com"
}
DELETE请求
DELETE /api/users/1 HTTP/1.1
Host: example.com