HTTP 请求方法列表
9种方法
RESTful参考
速查表
HTTP/1.1 定义的9种请求方法完整速查表,涵盖每种方法的语义、安全性、幂等性、是否允许请求体及典型使用场景。
GET
安全 幂等
RFC 7231
请求指定资源的表示。仅用于获取数据,不应产生副作用。
典型用途
查询列表、获取详情、搜索
请求示例
GET /api/users/123 HTTP/1.1
POST
有请求体
RFC 7231
向指定资源提交数据,通常用于创建新资源或触发处理。非幂等。
典型用途
创建资源、提交表单、上传文件
请求示例
POST /api/users HTTP/1.1\nContent-Type: application/json\n\n{"name":"张三"}
PUT
幂等 有请求体
RFC 7231
替换指定资源的全部内容。幂等——多次执行结果相同。
典型用途
全量更新资源
请求示例
PUT /api/users/123 HTTP/1.1\nContent-Type: application/json\n\n{"name":"李四"}
DELETE
幂等
RFC 7231
删除指定资源。幂等——删除一次和删除多次结果相同。
典型用途
删除资源
请求示例
DELETE /api/users/123 HTTP/1.1
PATCH
有请求体
RFC 5789
对资源进行部分修改。非幂等(取决于实现)。
典型用途
局部更新字段
请求示例
PATCH /api/users/123 HTTP/1.1\nContent-Type: application/json\n\n{"email":"new@test.com"}
HEAD
安全 幂等
RFC 7231
与GET类似但不返回响应体,仅获取响应头。用于检查资源是否存在或是否被修改。
典型用途
检查链接有效性、获取元信息
请求示例
HEAD /api/users/123 HTTP/1.1
OPTIONS
安全 幂等
RFC 7231
返回服务器支持的HTTP方法列表。常用于CORS预检请求。
典型用途
CORS预检、探测服务器能力
请求示例
OPTIONS /api/users HTTP/1.1
CONNECT
RFC 7231
建立到目标资源标识的服务器的隧道。主要用于HTTPS代理。
典型用途
SSL隧道、代理连接
请求示例
CONNECT www.example.com:443 HTTP/1.1
TRACE
安全 幂等
RFC 7231
回显收到的请求,用于诊断。存在安全风险,多数服务器禁用。
典型用途
调试、诊断请求路径
请求示例
TRACE /api/test HTTP/1.1
对比总表
| 方法 | 安全 | 幂等 | 请求体 | 主要用途 |
|---|---|---|---|---|
| GET | ✓ | ✓ | ✗ | 查询列表 |
| POST | ✗ | ✗ | ✓ | 创建资源 |
| PUT | ✗ | ✓ | ✓ | 全量更新资源 |
| DELETE | ✗ | ✓ | ✗ | 删除资源 |
| PATCH | ✗ | ✗ | ✓ | 局部更新字段 |
| HEAD | ✓ | ✓ | ✗ | 检查链接有效性 |
| OPTIONS | ✓ | ✓ | ✗ | CORS预检 |
| CONNECT | ✗ | ✗ | ✗ | SSL隧道 |
| TRACE | ✓ | ✓ | ✗ | 调试 |
关键概念
- • 安全方法:仅用于获取信息,不产生副作用(GET/HEAD/OPTIONS/TRACE)
- • 幂等方法:多次执行与一次执行效果相同(GET/PUT/DELETE/HEAD/OPTIONS/TRACE)
- • RESTful设计:GET查、POST建、PUT改、DELETE删,是API设计的核心约定
- • CORS预检:浏览器跨域请求前自动发送OPTIONS方法探测服务器许可