【问题标题】:Why can protocol be omitted from absolute paths on a webpage?为什么网页上的绝对路径可以省略协议?
【发布时间】:2010-01-07 04:15:49
【问题描述】:

我最近遇到了一个网站,该网站在选择元素上有一些有趣的样式。我去调查发现了这个(为了保护无辜而改名):

<script type="text/javascript" src="//www.domain.tld/file.js"></script>

尽管HTTP: 被省略,它仍然有效。放弃协议的目的是什么?

【问题讨论】:

  • 有很多答案,但没有实际引用指定此行为的标准。我认为这听起来很有用,但如果它只是一个实现怪癖,我不想使用它。
  • @Teddy 它显然被称为“X7.45 类”,并在 RFC 1808 w3.org/Addressing/rfc1808.txt 中指定
  • 对于未来的读者,它是秒。 @mwcz 的链接的 2.2 和 2.4.5。

标签: url


【解决方案1】:

它将使用您已经在使用的协议。对于同时具有httpshttp 版本的网站很有用。

因此,如果您使用 https://www.domain.tld/file.js,则脚本将为 https://www.domain.tld/file.js

如果您使用的是http://www.domain.tld/,则脚本将为http://www.domain.tld/file.js

【讨论】:

    【解决方案2】:

    我相信这是协议相对路径的简写。所以它应该使用与该会话相同的协议。例如,如果你用 http 抓取了那个页面,那么这个 url 是相对于 http 协议的

    【讨论】:

      【解决方案3】:

      目的是可以相对于包含页面确定方案(即httphttps)。如果您在多个页面中包含可以通过httphttps 提供的公共代码,这将非常有用。

      【讨论】:

        【解决方案4】:

        目的是“使用与当前 URL 相同的协议”——如果可以同时以 http:https: 访问页面,大概 (?) 很有用(我很难考虑其他协议但它可能有用,甚至这个用例也不是一个明确的用例)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-26
          • 2018-01-09
          • 1970-01-01
          • 2019-02-20
          • 1970-01-01
          • 2018-04-11
          相关资源
          最近更新 更多