0

我们都知道查询字符串有 2 个分隔符。是?&。为什么我们不只?对这两种情况都使用?为什么我们需要&
RFC 3986给出了标准的描述,但没有为我们提供关于该主题的动力。

查询组件由第一个问号 ("?") 字符指示,并以数字符号 ("#") 字符或 URI 结尾终止。

4

1 回答 1

1

如果您阅读各种 URL 规范,您会发现它没有为<query>组件设置任何语法。事实上,客户端和服务器可以就任何受允许/保留字符限制的字符串语法达成一致。

?<name>=<value>&<name>=<value>最常用的语法来自 HTML 规范。查找为表单参数指定“application/x-www-form-urlencoded”编码方案的 HTML 规范部分(选择任何版本)。

为什么 HTML 规范不用&作参数分隔符?我认为这是因为 URL 规范说该部分?保留<query>。(因此,如果 HTML 用作?分隔符,则需要进行百分比编码。)

为什么要?在部分保留<query>?好吧,现在我们正在进入http:统一 URL 规范存在之前的超链接的历史。基本上,我不知道,但它可能与早期 Web 服务器或浏览器解析超链接的方式有关。

于 2017-06-22T12:31:02.113 回答