在没有协议的情况下编写的 URL 的规则是什么

What are the rules on URLs written without the protocol?

本文关键字:URL 规则 是什么 情况下 协议      更新时间:2023-09-26

我不记得我什么时候开始看到没有协议的URL。

<script src="//jquery.com/jquery.js"></script>

。但我立即明白了。当我们不知道协议是什么时,不必列出协议真是太好了。不幸的是,我不知道这里的规则是什么。

这也行吗?

<link href="//stylesheet.com/stylesheet.css" />

这个呢?

/* stylesheet.css */
@import url(//fonts.googleapis.com/css?family=Questrial);

我不只是在这里寻找答案,而是在哪里寻找阅读权威指南。我什至不知道这种技术叫什么。

我不知道浏览器支持是什么,或者在浏览器不支持的情况下会发生什么。

感谢您的帮助!

更新

我一直在寻找的很多答案都是在这个问题上找到的。

这些称为协议相对 URI。

RFC 3986 中介绍了解析规则。

4.2. 相对参考

相对引用利用分层语法 (第 1.2.3 节)表示相对于命名空间的 URI 引用 另一个分层 URI。

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]
  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty

第 5.4 节提供了示例。

5.4. 参考解析示例

在具有明确定义的基本 URI 的表示形式中

  http://a/b/c/d;p?q

相对引用将转换为其目标 URI,如下所示。

  ...
  "//g"           =  "http://g"
  ...