HTTP 请求方式详解:GET、POST 与其他方法
系统介绍了 HTTP 常见请求方式(GET、POST、PUT、PATCH、DELETE)的区别与应用场景。重点对比了 GET 与 POST 在参数位置、安全性、缓存及幂等性上的差异,并结合 Axios 库给出了标准代码示例。文章强调了登录等敏感操作应使用 POST 以避免密码泄露,并提供了 RESTful 设计规范建议,帮助开发者在实际前后端分离项目中正确选择请求方法。

系统介绍了 HTTP 常见请求方式(GET、POST、PUT、PATCH、DELETE)的区别与应用场景。重点对比了 GET 与 POST 在参数位置、安全性、缓存及幂等性上的差异,并结合 Axios 库给出了标准代码示例。文章强调了登录等敏感操作应使用 POST 以避免密码泄露,并提供了 RESTful 设计规范建议,帮助开发者在实际前后端分离项目中正确选择请求方法。

在前后端分离开发中,最常见的问题之一就是:
本文系统整理 HTTP 请求方式的区别、原理与使用场景,结合 Vue + Axios 实际开发说明。
HTTP(HyperText Transfer Protocol)
超文本传输协议,是浏览器与服务器之间通信的规则。
| 方法 | 作用 | 是否修改数据 |
|---|---|---|
| GET | 获取数据 | 否 |
| POST | 提交数据 | 是 |
| PUT | 更新数据(整体替换) | 是 |
| PATCH | 局部更新 | 是 |
| DELETE | 删除数据 | 是 |
| HEAD | 只获取响应头 | 否 |
| OPTIONS | 查询支持的请求方式 | 否 |
axios.get('/api/user/list', { params: { page: 1, pageSize: 10 } })
生成的请求:
GET /api/user/list?page=1&pageSize=10
axios.post('/api/user/login', { username: 'admin', password: '123456' })
数据不会出现在 URL 中。
axios.put('/api/user', { id: 1, name: '张三', phone: '123456' })
axios.patch('/api/user/1', { phone: '999999' })
axios.delete('/api/user', { params: { id: 1 } })
| 对比项 | GET | POST |
|---|---|---|
| 参数位置 | URL | Body |
| 安全性 | 较低 | 较高 |
| 数据长度 | 有限制 | 基本无限制 |
| 是否缓存 | 是 | 否 |
| 是否幂等 | 是 | 否 |
| 用途 | 查询 | 提交 |
axios({ method: 'post', url: '/api/user/login', data: { username: 'admin', password: '123456' } })
✔ 查询 ✔ 不修改服务器数据 ✔ 参数简单
例如:
GET /admin/category/page?page=1&pageSize=10
✔ 登录 ✔ 提交表单 ✔ 创建数据 ✔ 查询条件复杂
例如:
POST /admin/employee/login
如果用 GET 做登录:
GET /login?username=admin&password=123456
密码会暴露在浏览器地址栏:
所以登录必须用 POST。
| 操作 | 方法 |
|---|---|
| 查询列表 | GET |
| 查询单个 | GET |
| 新增 | POST |
| 修改 | PUT |
| 局部修改 | PATCH |
| 删除 | DELETE |
一句话总结:
GET 是'看',POST 是'改'
[1] HTTP/1.1 协议规范 [2] Axios 官方文档

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online