http请求方式:主流类型及实操用法
http请求方式有GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH七种核心类型,不同方式对应专属接口操作场景、数据传输规则和安全特性,GET用于查询数据、POST用于提交新增数据、PUT用于完整更新数据、DELETE用于删除数据、HEAD用于获取响应头、OPTIONS用于查询接口支持方法、PATCH用于局部更新数据,其中GET、POST是Web开发最常用的两种方式,绝大多数前端、后端基础业务场景均可适配,PUT、PATCH、DELETE多用于标准化RESTful接口开发场景。
http基础请求方式(高频常用)
GET是只读查询类请求,你可以用它从服务器获取数据,该方式会将请求参数拼接在URL地址后方,参数信息可直接在地址栏、浏览器历史记录中查看,传输数据长度存在浏览器和服务器的固定限制,无法传输大容量数据,且不具备数据加密效果。GET请求可被浏览器缓存,重复发起相同请求会优先读取本地缓存数据,能小幅提升访问速度,适合页面加载、列表查询、详情查看等只读、无数据修改的场景。
POST是数据提交类请求,主要用于向服务器提交新增数据,参数通过请求体传输,不会展示在URL中,支持传输文本、文件、图片等文本、文件、图片等大容量数据,无固定长度限制。该方式默认不被浏览器缓存,每次请求都会直接与服务器交互,数据安全性相较于GET有一定提升,适合用户注册、表单提交、文件上传、数据新增等需要写入服务器数据的场景。
http标准请求方式(REST专用)
PUT用于对服务器已有资源进行完整全覆盖更新,你使用该方式时必须传入目标资源的全部字段,缺失字段会被服务器默认清空或重置,无法仅修改部分数据。PUT请求具备幂等性,多次发起相同请求,服务器最终数据结果和单次请求完全一致,适配用户信息全量修改、文件整体替换等完整更新场景。
PATCH用于对资源进行局部更新,仅需传入需要修改的字段,无需改动全部数据,能够有效减少数据传输量,提升接口请求效率。该方式同样具备幂等性,是轻量化数据更新方案,适合修改用户昵称、更新商品单价、调整状态等局部数据变更场景。
DELETE用于删除服务器指定资源,传入目标资源唯一标识即可完成删除操作,具备幂等性,多次重复删除同一资源不会产生异常报错,仅会返回资源不存在或删除成功的结果,适配订单删除、文件删除、数据下架等删除类业务场景。
http辅助请求方式(小众场景)
HEAD请求逻辑与GET完全一致,但服务器仅返回响应头信息,不会返回响应主体数据,请求响应速度极快。你可以用它检测接口是否可访问、判断文件大小、校验资源是否更新,常被用于接口健康检测、资源预校验场景。
OPTIONS用于查询目标接口支持的所有http请求方式,服务器会在响应头中返回允许的请求方法,主要用于前端跨域请求预检,浏览器发起复杂跨域请求前,会自动发起OPTIONS请求校验接口权限和请求方式合法性。
| 请求方式 | 核心用途 | 幂等性 | 数据传输位置 |
|---|---|---|---|
| GET | 查询读取资源 | 是 | URL地址栏 |
| POST | 新增提交资源 | 否 | 请求体 |
| PUT | 全量更新资源 | 是 | 请求体 |
| PATCH | 局部更新资源 | 是 | 请求体 |
| DELETE | 删除指定资源 | 是 | URL/请求体 |
| HEAD | 获取响应头信息 | 是 | 无数据传输 |
| OPTIONS | 校验接口请求权限 | 是 | 无数据传输 |
POST无幂等性的核心弊端是重复提交会产生多条重复数据,用户连续点击提交按钮、网络卡顿重试时,容易生成重复订单、重复表单数据。
该分类体系完全适配RFC7231超文本传输协议标准,是目前Web开发、接口测试、前后端交互的通用执行标准,非定制化行业规范。
RESTful接口开发场景中,禁止混用请求方式,查询操作使用POST、更新操作使用GET的写法,会大幅降低接口规范性和兼容性。
