HTTP请求方式说明
GET / POST / PUT / PATCH / DELETE 方法区别
| 方法 | 常见用途 | 安全 | 幂等 | 请求体 |
|---|---|---|---|---|
| GET | 查询资源 | 是 | 是 | 通常不带 |
| POST | 创建资源/提交数据 | 否 | 否 | 通常带 |
| PUT | 整体更新资源 | 否 | 是 | 通常带 |
| PATCH | 局部更新资源 | 否 | 否 | 通常带 |
| DELETE | 删除资源 | 否 | 是 | 通常不带 |
| HEAD | 只获取响应头 | 是 | 是 | 不带 |
| OPTIONS | 查询服务能力/CORS预检 | 是 | 是 | 通常不带 |
| TRACE | 诊断请求回显 | 是 | 是 | 不带 |
| CONNECT | 建立隧道 | 否 | 否 | 不带 |
GET
用于获取资源,不应修改服务器状态,参数通常放在 URL 查询字符串中。
GET /api/users?page=1POST
用于提交表单、创建资源或执行非幂等操作,请求体常见 JSON、表单或文件。
POST /api/usersPUT
用于整体替换资源,多次提交相同内容结果应一致。
PUT /api/users/1001PATCH
用于更新资源的一部分字段,是否幂等取决于接口设计。
PATCH /api/users/1001DELETE
用于删除指定资源,多次删除同一资源通常结果一致。
DELETE /api/users/1001HEAD
类似 GET,但只返回响应头,常用于检查资源是否存在或获取文件大小。
HEAD /download/file.zipOPTIONS
用于查询服务器支持的方法,也常用于浏览器跨域预检请求。
OPTIONS /api/usersTRACE
用于回显请求路径,因安全原因生产环境通常禁用。
TRACE /debugCONNECT
常用于代理服务器建立 HTTPS 隧道,普通业务接口很少使用。
CONNECT example.com:443使用说明
HTTP方法决定客户端对资源的操作语义。需要实际发送请求时可使用HTTP测试工具,请求头Content-Type可查看HTTP MimeType说明。
常见问题
GET和POST有什么区别?
GET通常用于查询资源,参数多放在URL中;POST通常用于提交数据或创建资源,请求体中可以携带JSON、表单或文件。
什么是幂等请求?
幂等表示同一个请求执行一次和执行多次对服务器资源的最终影响相同,例如GET、PUT、DELETE通常被设计为幂等。
PUT和PATCH有什么区别?
PUT通常表示整体替换资源,PATCH通常表示局部更新资源。
OPTIONS请求有什么用?
OPTIONS可用于查询服务器支持的请求方法,也常见于浏览器CORS跨域预检。
DELETE请求一定没有请求体吗?
规范没有绝对禁止DELETE请求体,但实际接口中通常不带请求体,兼容性也要看服务端实现。