URL查询字符串没有问号?

问题描述 投票:0回答:1

我在任何地方都找不到关于以下有查询字符串的URL是否有效的文档。

http://www.example.com/webapp&someKey=someValue

我知道 ? 开始一个键值对的列表,用 &.

? 需要吗?

url query-string
1个回答
1
投票

? 似乎是需要后面的部分才会被称为query。

查询字符串的定义是在 RFC 3986. 第3.3节路径说。

路径组件包含的数据,通常以层次形式组织,与非层次查询组件(第3.4节)中的数据一起,用于标识URI方案和命名权(如果有的话)范围内的资源。 路径由第一个问号("?")或数字符号("#")字符或URI的结尾结束。

3.4节定义了查询。

查询组件包含非等级数据,与路径组件(第3.3节)中的数据一起,用于识别URI方案和命名权(如果有)范围内的资源。 查询组件由第一个问号("?")字符表示,并由数字符号("#")字符或URI的结尾结束。

RFC 1738 URL有一个HTTP URL方案的部分。它在3.3节中说。

一个HTTP URL的形式是:

  http://<host>:<port>/<path>?<searchpart>

其中的和与第3.1节中的描述相同。如果省略了 : ,则端口默认为 80。 不允许使用用户名或密码。 是HTTP选择器,是一个查询字符串。The 是可选的, 前面的 "?" 也是可选的。如果nor都不存在,""也可以省略。

在and组件中,""、";"、"? "是保留的。 在HTTP中,""字符可以用来指定层次结构。

你可以使用技巧,把你提到的URI,然后把它当作一个查询字符串来分割。像Laravel、Django等框架都允许你用类似查询字符串的方式处理路由。我说的还不止这些, 我只是举了一个关于框架处理URI的例子.

看看Laravel文档中的这个例子。https:/laravel.comdocs7.xrouting#required-parameters. 它展示了Laravel如何采取类似 https:/siteposts1comments3 并通过一个函数处理帖子id 1和评论id 3。

Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
    //
});

也许,你可以处理像 http:/sitewebappssomekeysomevalue.

© www.soinside.com 2019 - 2024. All rights reserved.