Web 性能 - 资源提示 - 不使用 preconnect/dns-prefetch 的 href 内的协议是否有任何负面影响?

Web Performance - Resources Hints - is there any negative impact to not use the protocol inside the href of a preconnect/dns-prefetch?

我正在尝试尽可能正确地使用浏览器资源提示 (https://w3c.github.io/resource-hints/)。

我访问了几个大型网站,其中大多数都指定了 http/https 协议,如下所示:

<link rel="preconnect" href="https://cdn.krxd.net">
<link rel="preconnect" href="https://beacon.krxd.net">
<link rel="preconnect" href="https://ads-api.ft.com">
<link rel="preconnect" href="https://www.googletagservices.com">
<link rel="preconnect" href="https://partner.googleadservices.com">
<link rel="preconnect" href="https://securepubads.g.doubleclick.net">
<link rel="preconnect" href="https://tpc.googlesyndication.com">
<link rel="preconnect" href="https://imasdk.googleapis.com">
<link rel="preconnect" href="https://z.moatads.com">

但我发现 Shopify 没有在他们引用的 href 中指定协议

<link rel="dns-prefetch preconnect" href="//cdn.shopify.com" />
  <link rel="dns-prefetch preconnect" href="//www.google-analytics.com" />
  <link rel="dns-prefetch preconnect" href="//stats.g.doubleclick.net" />
  <link rel="dns-prefetch preconnect" href="//bat.bing.com" />
  <link rel="dns-prefetch preconnect" href="//bat.r.msn.com" />

确实basic W3C spec也有没有协议的例子。

我想知道如果不指定它是 http 还是 https 可以有一个 impact/cost 因为浏览器将必须获取更多信息(一个用于 http,一个用于 https),例如 2 个 dns 信息?

I wondered if not specifying if it's either http or https could have a impact/cost as the browser will have to fetch more information (one for http, one for https) like 2 dns information ?

不,浏览器不必发出两个请求。

这称为 protocol relative URI - 浏览器将使用请求嵌入页面的协议将其完成为完整的、绝对的。

如果您请求使用 https:// 嵌入的页面 - 那么 //foo.bar/ 将变为 https://foo.bar/;如果你只使用 http://,那么它将变成 http://foo.bar/

这是一种允许站点作者以“协议不可知”的方式编写代码的方法。您可以使用它部署一个站点来引用外部资源,以便可以通过 HTTP 或 HTTPS 访问它,而无需修改所有这些引用。它还有助于防止将网站从 HTTP 转移到 HTTPS 时可能出现的问题。如果在这种情况下使用 http://... 引用外部资源,浏览器将阻止它们。使用这种技术,它会自动请求HTTPS版本,无需修改代码。