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