HTTP 协议的常用方法有哪些?(GET、POST、PUT、DELETE、PATCH)各自的作用和区别是什么?

HTTP 协议定义了多种请求方法,用于指定客户端对服务器资源的操作。其中最常用的是 GETPOSTPUTDELETEPATCH,它们的作用和区别如下:

1. GET

  • 作用 :从服务器获取资源(只读操作),是最常用的方法。
  • 特点
    • 请求参数通常附加在 URL 后面(如 ?id=1&name=test),长度受浏览器/服务器限制(一般不超过 2048 字符)。
    • 无请求体(body),或不建议在 body 中携带数据(部分客户端支持,但不符合规范)。
    • 安全的 (不修改资源状态)和幂等的(多次执行结果相同)。
    • 可被缓存(如浏览器缓存、CDN 缓存),会被浏览器历史记录保存。
  • 典型场景:查询数据(如获取用户信息、搜索结果)。
  • 示例:GET /users/1(获取 ID 为 1 的用户)。

2. POST

  • 作用 :向服务器提交数据 ,通常用于创建新资源或触发非幂等操作。
  • 特点
    • 请求参数放在请求体(body)中,可传输大量数据(无明确长度限制),支持多种格式(如 JSON、FormData)。
    • 非安全的 (可能修改资源状态)和非幂等的(多次执行可能产生不同结果,如重复提交订单会创建多个订单)。
    • 默认不可缓存,不会被浏览器历史记录保存。
  • 典型场景:创建资源(如注册用户、提交表单、上传文件)、执行复杂操作(如支付)。
  • 示例:POST /users(请求体携带新用户信息,创建用户)。

3. PUT

  • 作用 :向服务器全量更新资源(若资源不存在,可能创建新资源,取决于服务器实现)。
  • 特点
    • 请求参数放在请求体中,需包含资源的完整数据(即使某些字段未修改)。
    • 非安全的 (会修改资源),但幂等的(多次执行结果相同,最终资源状态由请求体决定)。
    • 不可缓存。
  • 典型场景:全量更新资源(如修改用户的所有信息,包括姓名、年龄、邮箱等)。
  • 示例:PUT /users/1(请求体携带用户 ID=1 的完整信息,覆盖原有数据)。

4. DELETE

  • 作用删除服务器上的资源
  • 特点
    • 通常通过 URL 标识要删除的资源,请求体可选(一般不携带数据)。
    • 非安全的 (会删除资源),但幂等的(多次删除同一资源,最终结果相同:资源不存在)。
    • 不可缓存。
  • 典型场景:删除资源(如删除用户、订单)。
  • 示例:DELETE /users/1(删除 ID 为 1 的用户)。

5. PATCH

  • 作用 :向服务器部分更新资源(仅修改资源的部分字段)。
  • 特点
    • 请求体仅包含需要修改的字段(无需完整资源数据),比 PUT 更高效。
    • 非安全的 (会修改资源),但幂等的(多次执行相同的部分更新,结果相同)。
    • 不可缓存。
  • 典型场景:部分更新资源(如仅修改用户的邮箱,不改变姓名和年龄)。
  • 示例:PATCH /users/1(请求体为 {"email": "new@example.com"},仅更新邮箱)。

核心区别总结

方法 核心作用 数据位置 安全性(是否修改资源) 幂等性(多次执行结果是否相同) 缓存性 典型场景
GET 获取资源 URL 参数 安全(不修改) 幂等 可缓存 查询数据
POST 创建资源/提交数据 请求体 非安全(可能修改) 非幂等 不可缓存 注册、提交表单、支付
PUT 全量更新资源 请求体 非安全(修改) 幂等 不可缓存 全量修改用户信息
DELETE 删除资源 URL 标识 非安全(删除) 幂等 不可缓存 删除用户、订单
PATCH 部分更新资源 请求体(部分字段) 非安全(修改) 幂等 不可缓存 仅修改用户邮箱、手机号

补充说明

  • 安全性 :指是否改变服务器资源的状态(GET 是唯一安全的方法)。
  • 幂等性 :指多次执行相同请求后,服务器资源状态是否一致(GET/PUT/DELETE/PATCH 是幂等的,POST 通常非幂等)。
  • 实际开发中,部分场景可能灵活使用(如 POST 也可用于更新资源),但遵循规范能提高接口的可读性和一致性。
相关推荐
HavenlonLabs2 小时前
硬件 + SaaS 产品的工程化路径:从系统架构、PCB 设计到工程样机
网络·安全·架构·系统架构·安全架构
sweet丶5 小时前
MQTT消息通道-基础篇
网络协议
yychen_java6 小时前
当算法成为武器:AI泛滥时代的多维危机透视与治理路径
网络·人工智能·ai
漫途科技6 小时前
精准盯防危房隐患,智守人居安全|MTB46-4-2A 4G数据采集终端专项应用方案
网络·安全
奥利奥夹心脆芙7 小时前
辅助排查 HTTP 接口代码报错,实操完整案例分享
http
Misnearch7 小时前
抓包Packet Capture
网络·抓包
zhangfeng11337 小时前
ps aux讲解,结合国家超算中心 hpc apptainer
linux·服务器·网络
吠品8 小时前
一次 Nginx 报错 unexpected end of file 的排查记录
网络协议·https·ssl
代码中介商8 小时前
TLS握手全解析:从1.2到1.3的加密演进
网络·网络协议·http
xlq223228 小时前
66.ip
网络·网络协议·tcp/ip