PUT 和 POST 的区别

🚀 PUT 和 POST 的区别


🚀 1️⃣ 功能与语义

  • POST:用于创建资源。它将数据发送到服务器,并让服务器根据请求生成新资源。
  • PUT:用于更新资源。它将数据发送到服务器,并替换目标资源的全部内容。如果资源不存在,则创建资源。

⚙️ 2️⃣ 幂等性

  • POST非幂等
    • 多次发送同样的 POST 请求,服务器可能会创建多个资源(生成不同 ID)。
    • 例如:连续发送两次用户注册请求,可能会生成两条用户记录。
  • PUT幂等
    • 多次发送同样的 PUT 请求,结果不会改变
    • 例如:将用户的邮箱更新为 abc@example.com,多次发送相同的 PUT 请求,最终的邮箱仍然是 abc@example.com

🔥 3️⃣ 请求与响应

  • POST

    • 请求体:携带新资源的数据。
    • 响应:返回新资源的地址或 ID
    • 常见状态码:
      • 201 Created:资源创建成功。
      • 400 Bad Request:请求体有误。
  • PUT

    • 请求体:携带更新后的资源数据。
    • 响应:返回更新后的资源或状态。
    • 常见状态码:
      • 200 OK:资源更新成功。
      • 201 Created:资源不存在,已创建新资源。
      • 204 No Content:更新成功,无返回内容。

🔍 4️⃣ 使用场景

  • POST
    • 用户注册:创建新用户。
    • 上传文件:将新文件存储到服务器。
  • PUT
    • 更新用户信息:修改已有用户的邮箱、密码等。
    • 覆盖资源:更新产品描述等信息。

💡 5️⃣ 举例

假设有 /users 接口:

  • POST /users → 创建新用户(服务器分配 ID)。
  • PUT /users/123 → 覆盖 ID 为 123 的用户信息。

💬 面试回答示例

PUTPOST 都用于向服务器发送数据,但语义和幂等性不同:

  • POST非幂等的,用于创建资源,重复请求可能会生成多个资源;
  • PUT幂等的,用于更新资源,重复请求不会改变最终结果。
  • POST 多用于创建用户、提交表单;PUT 多用于更新用户信息或资源替换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值