如果我有一个带有查询参数的URL,那么"转义"&query参数分隔符是否有效?
前任。
<a href="/foo.html?cat=meow&dog=woof">go</a>
与
<a href="/foo.html?cat=meow&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 是:
TLDR;所有评估为&
的配方都同样有效。
从OP的链接:
与许多使用类似 BNF 的语法来定义协议允许的字节(八位字节)的规范不同,URI 语法是根据字符定义的。 语法中的每个文本对应于它所表示的字符,而不是对应于任何特定编码字符集中该字符的八位字节编码。 如何用网络上的位和字节来表示 URI 取决于用于传输它的协议的字符编码,或者包含它的文档的字符集。
-- RFC: 2396 - 统一资源标识符 (URI):通用语法 1998 年 8 月
由
伯纳斯-李*
麻省理工学院/LCS
R. 菲尔丁
加州大学欧文分校
L. 马辛特
施乐公司
*:那多酷啊!
转义发生在 HTML 中 - 当您单击此类链接时,浏览器会将&
视为&
。
要在 URL 上对&
进行编码,您可以将其编码为 %26
。