【问题标题】:Is using & as a Query Parameter delimiter valid?使用 & 作为查询参数分隔符是否有效?
【发布时间】:2012-08-05 14:00:14
【问题描述】:

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

例如

<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 .. 是否有说明有效性的规范使用 & 作为查询参数分隔符?我不是在浏览器中寻找“最有效的方法”,而是在正确方式来分隔查询参数。

【问题讨论】:

    标签: http url query-parameters


    【解决方案1】:

    TLDR;所有计算结果为 &amp; 的公式都同样有效。

    来自 OP 的链接:

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

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

    通过

    T.伯纳斯-李*

    麻省理工学院/LCS

    R。打野

    加州大学欧文

    L.大师

    施乐公司

    *:这太酷了!

    【讨论】:

      【解决方案2】:

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

      要在 URL 上编码&amp;,您可以将percent encode 编码为%26

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-29
        • 2017-11-25
        • 1970-01-01
        • 2014-04-08
        • 1970-01-01
        • 2011-09-15
        相关资源
        最近更新 更多