Web 为什么查询参数有两个分隔符?

Web 为什么查询参数有两个分隔符?,web,query-string,rfc3986,Web,Query String,Rfc3986,我们都知道查询字符串有两个分隔符。哪些是?和&。我们为什么不在这两种情况下都使用??为什么我们需要& 给出了标准的描述,但没有为我们提供关于该主题的动机 查询组件由第一个问题指示 标记(“?”)字符并以数字符号(“#”)字符结尾 或者在URI的末尾 如果您阅读了各种URL规范,您将看到它没有为组件设置任何语法。实际上,客户机和服务器可以根据允许/保留字符的限制,就字符串的任何语法达成一致 最常用的?=&=语法来自HTML规范。查找HTML规范中指定表单参数的“application/x-www-

我们都知道查询字符串有两个分隔符。哪些是
&
。我们为什么不在这两种情况下都使用
?为什么我们需要
&

给出了标准的描述,但没有为我们提供关于该主题的动机

查询组件由第一个问题指示 标记(“?”)字符并以数字符号(“#”)字符结尾 或者在URI的末尾


如果您阅读了各种URL规范,您将看到它没有为
组件设置任何语法。实际上,客户机和服务器可以根据允许/保留字符的限制,就字符串的任何语法达成一致

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

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

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