我们都知道查询字符串有2个分隔符。哪些是?
和&
。为什么我们不在这两种情况下只使用?
?为什么我们需要&
RFC 3986给出了标准的描述,但没有为我们提供关于该主题的动机。
查询组件由第一个问题指示 标记(“?”)字符并以数字符号(“#”)字符结束 或者在URI的末尾。
答案 0 :(得分:1)
如果您阅读了各种URL规范,您将看到它没有为<query>
组件设置任何语法。实际上,客户端和服务器可以就字符串的任何语法达成一致,但受允许/保留字符的限制。
最常用的?<name>=<value>&<name>=<value>
语法来自HTML规范。查找指定表单参数的“application / x-www-form-urlencoded”编码方案的HTML规范部分(选择任何版本)。
为什么HTML规范不使用&
作为参数分隔符?我认为这是因为网址规范指出?
部分<query>
保留。 (因此,如果HTML使用?
作为分隔符,则需要进行百分比编码。)
为什么在?
部分保留<query>
?那么现在我们在统一的URL规范存在之前进入http:
超链接的历史。基本上,我不知道,但它可能与早期Web服务器或浏览器解析超链接的方式有关。