前端传参方式指南:Query、Params、Body 的区别
📌 核心概念
1. Path Parameters(路径参数)
- 用途:标识唯一资源(如 RESTful API 的 ID)。
示例:
GET /users/123 # 获取 ID=123 的用户
特点:
- 直接嵌入 URL 路径。
- 语义化强(如
/users/:id
)。
2. Query Parameters(查询参数)
- 用途:附加筛选条件(如分页、搜索)。
示例:
GET /users?name=John&page=1
特点:
- 位于
?
后,格式为key=value
。 - 暴露在 URL 中,不适合敏感数据。
- 位于
3. JSON Body(主流请求体格式)
- 用途:提交结构化数据(如表单、复杂参数)。
示例:
POST /users Content-Type: application/json Body: { "name": "John", "age": 25 }
特点:
- 用于 POST/PUT/PATCH 请求。
- 支持嵌套数据,替代传统的
x-www-form-urlencoded
。
🚀 最佳实践总结
场景 | 推荐方式 | 示例 |
---|---|---|
获取资源标识 | Path Params | GET /users/123 |
简单查询条件 | Query Params | GET /users?name=John |
复杂数据提交 | JSON Body | POST /users { "name": "John" } |
传统表单提交 | URL Encoded(仅兼容旧系统) | POST /login name=John&age=25 |
❗ 常见误区
GET 请求用 JSON Body
- ❌ 不推荐:违反 HTTP 规范,兼容性差。
- ✅ 替代方案:复杂查询改用 POST + JSON。
敏感数据用 Query Params
- ❌ 不安全:参数暴露在 URL 和浏览器历史中。
- ✅ 改用 POST + JSON Body。
📚 学习要点
- Path Params 和 Query Params 都是通过 URL 传参,但用途不同。
- 现代 API 优先使用 JSON Body,淘汰
x-www-form-urlencoded
。 遵循 RESTful 设计原则:
GET
用于获取数据(Path/Query)。POST/PUT/PATCH
用于提交数据(JSON Body)。