前言
在前后端分离开发中,最常见的问题之一就是:
- GET 和 POST 有什么区别?
- PUT、DELETE、PATCH 是干什么的?
- 为什么有的接口用 POST 不能用 GET?
- 为什么有时候 GET 能成功,POST 却报错?
本文系统整理 HTTP 请求方式的区别、原理与使用场景,结合 Vue + Axios 实际开发说明。
定义概念 + 缩写
一、HTTP 是什么?
HTTP(HyperText Transfer Protocol)
超文本传输协议,是浏览器与服务器之间通信的规则。
二、常见请求方式
| 方法 | 作用 | 是否修改数据 |
|---|---|---|
| GET | 获取数据 | 否 |
| POST | 提交数据 | 是 |
| PUT | 更新数据(整体替换) | 是 |
| PATCH | 局部更新 | 是 |
| DELETE | 删除数据 | 是 |
| HEAD | 只获取响应头 | 否 |
| OPTIONS | 查询支持的请求方式 | 否 |
性质
一、GET 请求
特点
- 用于获取数据
- 参数放在 URL 中
- 可被缓存
- 幂等(多次请求结果相同)
示例
axios.get('/api/user/list',{params:{page:1,pageSize:10}})
生成的请求:
GET /api/user/list?page=1&pageSize=10
适用场景
- 查询列表
- 查询详情
- 查询分页数据
二、POST 请求
特点
- 用于提交数据
- 数据放在请求体(body)
- 不会被浏览器缓存
- 常用于创建资源
示例
axios.post('/api/user/login',{username:,:})


