使用 & 作为查询参数分隔符是否有效?



如果我有一个带有查询参数的URL,那么"转义"&query参数分隔符是否有效?

前任。

<a href="/foo.html?cat=meow&dog=woof">go</a>

<a href="/foo.html?cat=meow&amp;dog=woof">go</a>

RFC 2396 明确指出使用"&"是正确的,但我找不到任何关于使用保留字符转义版本的(无效)的信息。

我注意到的一件事是,Chrome 在单击浏览器中的链接时似乎原谅了它们,但是当我查看页面源代码并从查看源视图中单击链接(/foo.html?cat=meow&dog=woof)时,它不起作用。

我很想知道是否有任何规范/部分可以指出"只使用和不使用&或%26(这是&URL编码的)。

(注意:当我开始使用以这种方式构建其URL的代码库时,就会出现此问题,我个人会使用"&")

RCF 2396: http://www.ietf.org/rfc/rfc2396.txt

更新 1

正确 - 服务器写入页面的实际 URL 是:go .. 是否有规范说明了使用 & 作为查询参数分隔符的有效性?我不是在浏览器中寻找"最有效"的方法,而是在界定查询参数的正确方法是什么。

TLDR;所有评估为&的配方都同样有效。

从OP的链接:

与许多使用类似 BNF 的语法来定义协议允许的字节(八位字节)的规范不同,URI 语法是根据字符定义的。 语法中的每个文本对应于它所表示的字符,而不是对应于任何特定编码字符集中该字符的八位字节编码。 如何用网络上的位和字节来表示 URI 取决于用于传输它的协议的字符编码,或者包含它的文档的字符集。

-- RFC: 2396 - 统一资源标识符 (URI):通用语法 1998 年 8 月

伯纳斯-李*

麻省理工学院/LCS

R. 菲尔丁

加州大学欧文分校

L. 马辛特

施乐公司

*:那多酷啊!

转义发生在 HTML 中 - 当您单击此类链接时,浏览器会将&amp;视为&

要在 URL 上对&进行编码,您可以将其编码为 %26