HTTP请求方式说明

GET / POST / PUT / PATCH / DELETE 方法区别

方法常见用途安全幂等请求体
GET查询资源通常不带
POST创建资源/提交数据通常带
PUT整体更新资源通常带
PATCH局部更新资源通常带
DELETE删除资源通常不带
HEAD只获取响应头不带
OPTIONS查询服务能力/CORS预检通常不带
TRACE诊断请求回显不带
CONNECT建立隧道不带

GET

用于获取资源,不应修改服务器状态,参数通常放在 URL 查询字符串中。

GET /api/users?page=1

POST

用于提交表单、创建资源或执行非幂等操作,请求体常见 JSON、表单或文件。

POST /api/users

PUT

用于整体替换资源,多次提交相同内容结果应一致。

PUT /api/users/1001

PATCH

用于更新资源的一部分字段,是否幂等取决于接口设计。

PATCH /api/users/1001

DELETE

用于删除指定资源,多次删除同一资源通常结果一致。

DELETE /api/users/1001

HEAD

类似 GET,但只返回响应头,常用于检查资源是否存在或获取文件大小。

HEAD /download/file.zip

OPTIONS

用于查询服务器支持的方法,也常用于浏览器跨域预检请求。

OPTIONS /api/users

TRACE

用于回显请求路径,因安全原因生产环境通常禁用。

TRACE /debug

CONNECT

常用于代理服务器建立 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请求体,但实际接口中通常不带请求体,兼容性也要看服务端实现。