活到老学到老之URL中的 ? 和 & 是干什么用的?

? 表示查询参数的开始

URL 中 第一个查询参数 前必须用 ?。

格式:

https://example.com/path?key1=value1

例子:

/app/getDirector?prefix=app/android/publish/
  • 这里 prefix=app/android/publish/ 是第一个查询参数。

& 表示追加查询参数

URL 中 第二个及以后的查询参数 用 & 连接。

格式:

https://example.com/path?key1=value1&key2=value2

例子:

/app/getDirector?prefix=app/android/publish/&limit=10&sort=desc
  • prefix 是第一个查询参数,用 ? 开始。
  • limit 和 sort 是后续参数,用 & 连接。

总结

  1. 第一个查询参数前必须用 ?。
  2. 后续参数前用 &。
  3. 如果 URL 本身没有查询参数,直接加 ?。
  4. 如果 URL 已经有查询参数,再加新参数就用 &。

其他

  1. URL 中的查询参数顺序一般无所谓(除非后端对顺序敏感,很少见)。
  2. 参数值中如果包含特殊字符(如 /、&、空格等),需要用 encodeURIComponent 或 URL 编码。

查询参数和路径参数并不限于 GET 请求

  1. 路径参数(Path Parameter)
    定义在 URL 路径中,例如:
@router.get("/users/{user_id}")
async def get_user(user_id: int):
    ...

{user_id} 可以出现在 GET、POST、PUT、DELETE 等任何 HTTP 方法中。

作用:标识资源或操作的对象,常用于 REST 风格 API。

  1. 查询参数(Query Parameter)
    URL ?key=value&key2=value2 形式。
    GET 请求最常用,但 POST、PUT 等请求也可以使用查询参数,只是 语义上 GET 用查询参数更合适。

示例:

# GET
GET /users?role=admin&page=2

# POST
POST /users?invite_code=ABC123

POST 请求一般把大数据、敏感数据放在 请求体,查询参数通常用作小型标识或控制参数。

所以

1、GET 请求最好不要用请求体(虽然 HTTP 标准允许,但大部分客户端和中间件不支持)。
2、POST/PUT/DELETE 可以同时用路径参数、查询参数和请求体。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值