Http方法详解

查(Read) → GET

增(Create) → POST

改(Update) → PUT / PATCH

删(Delete) → DELETE

幂等性 :多次执行结果相同
安全性:不修改服务器状态

1. GET - 获取资源

  • 作用:从服务器获取指定资源

  • 特点

    • 幂等(多次请求结果相同)

    • 可缓存

    • 参数暴露在 URL 中(有长度限制)

    • 无副作用(只读操作)

  • 示例GET /users/123 获取ID为123的用户信息


2. POST - 创建资源

  • 作用:向服务器提交数据,创建新资源

  • 特点

    • 非幂等(多次提交会创建多个资源)

    • 数据在请求体(Body)中传输

    • 无缓存

  • 示例POST /users 创建新用户,数据:{"name":"张三"}


3. PUT - 全量更新

  • 作用:完整替换目标资源

  • 特点

    • 幂等

    • 需提供资源的完整表示

    • 不存在则创建(取决于实现)

  • 示例PUT /users/123 替换ID为123的用户全部信息


4. PATCH - 局部更新

  • 作用:对资源进行部分修改

  • 特点

    • 非幂等(可能,视具体实现)

    • 只发送需要修改的字段

    • 节省带宽

  • 示例PATCH /users/123 仅修改邮箱:{"email":"new@example.com"}

表格

对比 PUT PATCH
更新范围 完整替换 局部修改
未提供字段 被清空/设为默认值 保持不变
请求体大小 较大 较小

5. DELETE - 删除资源

  • 作用:删除指定的资源

  • 特点

    • 幂等(删除一次和多次结果相同)

    • 不可恢复(通常)

  • 示例DELETE /users/123 删除ID为123的用户


6. HEAD - 获取元信息

  • 作用:与 GET 相同,但只返回响应头,不返回响应体

  • 特点

    • 幂等

    • 用于检查资源是否存在、获取文件大小(无需下载内容)

  • 示例HEAD /large-file.zip 获取文件大小,判断是否需要更新


7. OPTIONS - 查询支持的方法

  • 作用:查询服务器支持的 HTTP 方法和其他选项

  • 特点

    • 幂等

    • 常用于 CORS 预检请求

  • 示例OPTIONS /users 返回 Allow: GET, POST, HEAD, OPTIONS


8. TRACE - 回显测试

  • 作用:服务器将收到的请求原样返回,用于诊断

  • 特点

    • 存在安全风险(XST 攻击),通常被禁用
  • 现状:生产环境基本禁用


9. CONNECT - 建立隧道

  • 作用:与服务器建立网络连接(主要用于 HTTPS 代理)

  • 示例CONNECT www.example.com:443 建立 SSL 隧道


核心属性对比

表格

方法 幂等性 安全性 可缓存 请求体
GET
POST
PUT
PATCH
DELETE
HEAD
OPTIONS

Q:POST 和 PUT 有什么区别?

  • POST 用于创建,由服务器分配新资源 URI

  • PUT 用于创建或更新,客户端指定完整 URI

Q:PATCH 和 PUT 选哪个?

  • 修改全部字段 → PUT

  • 修改部分字段 → PATCH(更灵活、高效)

Q:GET 能传 Body 吗?

  • 语法上允许,但语义不推荐,且部分服务器/代理会忽略 GET 的 Body
相关推荐
王二端茶倒水2 天前
从千兆到万兆:宽带运营不能只卖套餐,要管用户生命周期从千兆到万兆:宽带运营需要管理用户生命周期
后端·网络协议·架构
extrao4 天前
🚀 Kea DHCP4 自动分配系统完整搭建
网络协议
喵个咪4 天前
Go-Wind HTTP 服务器从入门到精通
后端·http·go
不做菜鸟的网工6 天前
BGP特性
网络协议
明月_清风8 天前
开发者网络概念全扫盲:一篇搞定
后端·网络协议
刘马想放假8 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
王二端茶倒水9 天前
一套可落地的无线运营方案,不能只管 AP,还要管用户、计费和运维
网络协议
162723816089 天前
EtherCAT 分布式时钟(DC)原理与配置实战:把多轴真正"对齐到同一时刻"
网络协议
王二端茶倒水10 天前
宽带无线项目,怎么从一次性交付变成长期运营收入?
网络协议