HTTP 请求方法是什么?
当我们在浏览器中访问网页,或使用 App 请求一个网络资源时,都会向服务器发送请求。而这个请求里,会带有一种 “方法”,它用于告诉服务器你打算对这个资源做什么操作:
- 是要获取资源?
- 还是创建一个新的?
- 或者修改或删除已有的资源?
HTTP 请求方法定义了客户端和服务器之间的通信方式,从而确保双方能够理解彼此的意图。

HTTP 协议定义了一些常用的请求方法,初学的小伙伴只要掌握下面这几个就可以了:
| 方法 | 说明 |
|---|---|
| GET | 获取资源(不会修改服务器数据) |
| POST | 提交数据,创建新资源 |
| PUT | 更新资源(整体替换) |
| PATCH | 更新资源(部分修改) |
| DELETE | 删除资源 |
| HEAD | 只请求响应头,不返回内容 |
| OPTIONS | 查看服务器支持的请求方法 |
| 方法 | 安全性 | 幂等性 |
|---|---|---|
| GET | 安全 | 幂等 |
| POST | 非安全 | 非幂等 |
| PUT | 非安全 | 幂等 |
| PATCH | 非安全 | 非幂等 |
| DELETE | 非安全 | 幂等 |
| HEAD | 安全 | 幂等 |
| OPTIONS | 安全 | 幂等 |
HTTP 请求方法详解
1. GET 方法
在 HTTP 中,GET 方法用于向服务器请求某个资源的数据(比如网页、图片、用户信息等)。GET 是最常用的 HTTP 方法,它有以下几个特点:
- 安全:不会修改服务器上的数据。
- 幂等:多次请求结果一样。
- 可缓存:浏览器可缓存响应结果。
- 参数可见:数据通过 URL 查询参数传递(如 ?id=123)。
其中,GET方法主要用于以下场景:
- 打开网页。
- 搜索内容。
- 下载文件。
2. POST 方法
在 HTTP 中,POST 方法用于将数据发送给服务器,常用于新增资源。POST 也是最常用的方法之一,它有以下几个特点:
- 非幂等:重复提交可能会创建多个资源。
- 不安全:会修改服务器数据。
- 不可缓存
- 参数不可见:数据放在请求体中,不会出现在 URL 里。
其中,POST 方法主要用于以下场景:
- 提交表单数据(如注册用户、发布文章)。
- 上传文件。
- 发送大量数据。
3. PUT 方法
在 HTTP 中,PUT 方法用于使用新的数据完全替换某个资源,如果资源不存在则新建。
PUT 方法有以下几个特点:
- 幂等性:如果资源已存在,PUT 会更新它;如果不存在,PUT 会创建它。多次 PUT 同一资源,结果是一样的。
- 非安全性:会修改服务器上的数据。
- 不可缓存:PUT 请求的响应通常不被缓存。
其中,PUT 方法主要用于以下场景:
- 更新用户信息(整体替换)。
- 用固定 URL 上传数据。
4. PATCH 方法
在 HTTP 中,PATCH 方法表用于修改资源的部分字段,而不是整体替换。PATCH 方法有以下特点:
- 非幂等性:多次执行可能导致不同结果。
- 非安全性:会修改服务器上的数据。
- 不可缓存:通常不被缓存。
其中,PATCH 方法主要用于以下场景:
- 更新部分数据(比如只更新用户名的某个字段,而不是整个用户对象)。
PUT 与 PATCH 的区别
如果想要更新数据库中的数据,我们可以使用 PUT 和 PATCH 这 2 个方法。不过 PUT 用于实现整体替换,而 PATCH 用于实现部分替换。
比如有一个用户表(User),该表有id、name、password、email、address等字段,那么:
- 如果只想更新 password 字段,那么应该使用 PATCH 方法。此时你只发送包含 password 字段的请求体,其他 name、email 等字段保持不变。
- 如果想要更新所有字段(整体替换),那么应该使用 PUT 方法。此时你需要发送包含 id、name、password、email、address 等所有字段的完整用户数据。
5. DELETE 方法
在 HTTP 中,DELETE 方法用于请求服务器删除指定资源。DELETE 方法有以下几个特点:
- 幂等性:多次执行相同 DELETE 请求,资源最终都会被删除(第一次删除成功,后续再删除会提示资源不存在,但结果都是资源不存在)。
- 非安全性:会修改服务器上的数据。
- 不可缓存:DELETE 请求的响应通常不被缓存。
其中,DELETE 方法主要用于以下场景:
- 删除用户账户。
- 删除文章或图片。
6. HEAD 方法
在 HTTP 中,HEAD 和 GET 类似,但只返回响应头,不包含实际内容。HEAD 方法有以下几个特点:
- 幂等性:与 GET 类似。
- 安全性:不修改服务器数据。
- 可缓存:可以被缓存。
其中,HEAD 方法主要用于以下场景:
- 检查资源是否存在(不下载完整内容)。
- 获取资源的元信息,如修改日期、内容类型、大小等。
7. OPTIONS
在 HTTP 中,OPTIONS 方法用于询问服务器 “我可以怎么操作这个资源”,主要用于跨域请求(CORS)时的预检查。OPTIONS 方法有以下特点:
- 幂等性:不修改服务器数据。
- 安全性:不修改服务器数据。
其中,OPTIONS 方法主要用于以下场景:
- CORS 预检请求:在跨域请求中,浏览器会先发送 OPTIONS 请求,以确定服务器是否允许实际的请求。
