HTTP 请求方法

HTTP 请求方法是什么?

当我们在浏览器中访问网页,或使用 App 请求一个网络资源时,都会向服务器发送请求。而这个请求里,会带有一种 “方法”,它用于告诉服务器你打算对这个资源做什么操作:

  • 是要获取资源?
  • 还是创建一个新的?
  • 或者修改或删除已有的资源?

HTTP 请求方法定义了客户端和服务器之间的通信方式,从而确保双方能够理解彼此的意图。

HTTP

HTTP 协议定义了一些常用的请求方法,初学的小伙伴只要掌握下面这几个就可以了:

HTML 请求方法
方法 说明
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 请求,以确定服务器是否允许实际的请求。

上一篇: HTTP 状态码

下一篇: 没有了

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号