正在使用&作为查询参数分隔符有效吗?

时间:2012-08-08 12:47:14

标签: http url query-parameters

如果我有一个带有查询参数的网址,那么“逃避”&查询参数分隔符?

实施例

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

VS

<a href="/foo.html?cat=meow&amp;dog=woof">go</a>
RFC 2396明确指出使用“&amp;”是正确的,但我无法找到使用保留字符的转义版本的(有效)的任何内容。

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

我很想知道是否有任何规格/部分我可以指出“仅使用&amp;并且不要使用&amp;或%26(这是&amp; URL编码)。

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

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

更新1

正确 - 服务器写入页面的实际URL是:&lt; a href =“/ foo.html?cat = meow&amp; dog = woof”&gt; go&lt; / a&gt; ..是否有一个说明使用&amp;的有效性的规范作为查询参数分隔符?我不是在浏览器中寻找“主要是什么”,但是正确的方式是什么来界定查询参数。

2 个答案:

答案 0 :(得分:2)

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

来自OP的链接:

  

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

-- RFC: 2396 - Uniform Resource Identifiers (URI): Generic Syntax August 1998

通过

<强>吨。伯纳斯李*

MIT / LCS

R上。守备

U.C。欧文

升。 Masinter

施乐公司

*:那有多酷!

答案 1 :(得分:1)

以HTML格式进行转义 - 当您点击此类链接时,浏览器会将&amp;视为&

要对网址&进行编码,您可以percent encode将其编入%26