【问题标题】:Why do we have two delimiters for query parameters?为什么我们有两个查询参数的分隔符?
【发布时间】:2017-11-25 16:46:09
【问题描述】:

我们都知道查询字符串有 2 个分隔符。分别是?&。为什么我们不在这两种情况下都只使用??为什么我们需要&
RFC 3986 提供了标准的描述,但没有为我们提供关于该主题的动力。

查询组件由第一个问题表示 标记 ("?") 字符并以数字符号 ("#") 字符结尾 或在 URI 的末尾。

【问题讨论】:

    标签: web query-string rfc3986


    【解决方案1】:

    如果您阅读各种 URL 规范,您会发现它没有为 <query> 组件设置任何语法。事实上,客户端和服务器可以就任何受允许/保留字符限制的字符串语法达成一致。

    最常用的?<name>=<value>&<name>=<value> 语法来自HTML 规范。查找为表单参数指定“application/x-www-form-urlencoded”编码方案的 HTML 规范部分(选择任何版本)。

    为什么 HTML 规范不使用 & 作为参数分隔符?我认为这是因为 URL 规范说 ?<query> 部分是保留。 (因此,如果 HTML 使用 ? 作为分隔符,则需要进行百分比编码。)

    为什么? 保留在<query> 部分?好吧,现在我们正在了解在统一 URL 规范存在之前的 http: 超链接的历史。基本上,我不知道,但它可能与早期的 Web 服务器或浏览器解析超链接的方式有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2020-08-23
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多