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

4

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

例如:

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

vs

<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是:<a href="/foo.html?cat=meow&dog=woof">go</a>。是否有规范可以说明使用&作为查询参数分隔符的有效性?我不是在寻找浏览器中“大多数情况下有效”的东西,而是要了解分隔查询参数的正确方式。
2个回答

2
TLDR; 所有计算结果为 & 的表达式都是有效的。
从 OP 的链接中:
引用: 与许多使用类 BNF 语法来定义协议允许的字节(八位组)的规范不同,URI 语法是以字符为基础来定义的。语法中的每个文字都对应于它表示的字符,而不是特定编码字符集中该字符的八位组编码。URI 如何在网络上以比特和字节的形式表示取决于用于传输它的协议的字符编码或包含它的文档的字符集。 -- RFC: 2396 - Uniform Resource Identifiers (URI): Generic Syntax August 1998 作者: T. Berners-Lee* MIT/LCS R. Fielding U.C. Irvine L. Masinter Xerox Corporation *: 多酷啊!

1

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

要对URL中的&进行编码,您可以百分比编码它为%26


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接