发表于: 2025-05-19 20:56:32
0 50
今天完成的任务:继续学习任务点:
- 16.Post时,对比用Http Body接收参数,用param接收参数的区别,分别描述两种方式的使用场景
认知:参数可以通过两种方式传递:HTTP Body和URL参数(Params)。
1. HTTP Body接收参数
- 定义:参数放在请求体中,不会出现在URL中。
- 适用场景:
- 传输大量数据(如JSON、XML等结构化数据)。
- 传输敏感信息(如密码、令牌等),因为请求体内容不会直接暴露在URL中。
- 支持多种数据格式(如
application/json
、application/xml
、multipart/form-data
等)。
- 后端处理:通常使用
@RequestBody
注解(如Spring框架)或直接解析请求体内容。
示例:
POST /api/login HTTP/1.1
Content-Type: application/json
{"username": "admin", "password": "123456"}
2. URL参数(Params)接收参数
- 定义:参数以键值对形式附加在URL末尾(如
?key1=value1&key2=value2
)。 - 适用场景:
- 传输少量非敏感数据(如分页参数、过滤条件等)。
- 需要缓存或书签的场景(因为URL参数会保留在浏览器历史记录中)。
- 兼容性要求高(如某些老旧接口仅支持URL参数)。
- 后端处理:通常使用
@RequestParam
注解(如Spring框架)或直接从查询字符串解析。
示例:POST /api/search?q=keyword&page=1 HTTP/1.1
主要区别对比
特性 | HTTP Body参数 | URL参数(Params) |
---|---|---|
位置 | 请求体 | URL末尾(查询字符串) |
安全性 | 较高(不可见) | 较低(暴露在URL中) |
数据量支持 | 无限制(适合大量数据) | 受URL长度限制(通常约2KB-8KB) |
数据格式 | 支持复杂格式(JSON、XML等) | 仅键值对(key=value ) |
缓存/历史记录 | 不会被缓存或记录 | 可能被缓存或记录 |
使用场景建议
- 优先使用HTTP Body:当需要传输复杂数据、大量数据或敏感信息时。
- 使用URL参数:当数据简单、非敏感且需要兼容性时(如GET请求的替代方案)。
遇到的问题:对HTTPbody参数有些熟悉,就是我使用的方法,对url参数看的直迷糊。。。
明天的问题:解决今天的问题,继续任务点。
评论