相对或绝对协议会影响 dns 预取性能吗?
Does relative or absolute protocol affect dns prefetch performance?
我的站点使用相关协议加载外部 javascript,即
<script type="text/javascript" src="//somewhere.com/script.js"></script>
(注意:脚本标签在页面加载后异步注入以获取脚本。)
但我的 dns-prefetch 标签是绝对协议,即
<link rel="dns-prefetch" href="http://somewhere.com/script.js">
因此,当网站通过 HTTPS 加载时,预取为 http,脚本为 https。 Chrome 控制台中没有关于此的警告。
除了保持这些一致之外,将 dns 预取 link 更改为相关协议是否有任何性能优势?
我的一个想法是,因为所有 dns 预取都是从主机名解析 IP,所以在预取中使用 http 以避免需要进行 SSL 握手实际上可能是有益的。但这假设 dns-prefetch link 指示浏览器发出网络请求,我不确定发生了什么。
以下三行,当浏览器支持时,执行相同的操作:
<link rel="dns-prefetch" href="http://SERVERNAME/some.script.js">
<link rel="dns-prefetch" href="https://SERVERNAME/some.script.js">
<link rel="dns-prefetch" href="//SERVERNAME/some.script.js">
他们都尝试从 DNS 解析器请求 A 和 AAAA 资源记录,如果此类信息尚未存在于浏览器名称服务缓存中的话。
因此,性能相同。
我的站点使用相关协议加载外部 javascript,即
<script type="text/javascript" src="//somewhere.com/script.js"></script>
(注意:脚本标签在页面加载后异步注入以获取脚本。)
但我的 dns-prefetch 标签是绝对协议,即
<link rel="dns-prefetch" href="http://somewhere.com/script.js">
因此,当网站通过 HTTPS 加载时,预取为 http,脚本为 https。 Chrome 控制台中没有关于此的警告。
除了保持这些一致之外,将 dns 预取 link 更改为相关协议是否有任何性能优势?
我的一个想法是,因为所有 dns 预取都是从主机名解析 IP,所以在预取中使用 http 以避免需要进行 SSL 握手实际上可能是有益的。但这假设 dns-prefetch link 指示浏览器发出网络请求,我不确定发生了什么。
以下三行,当浏览器支持时,执行相同的操作:
<link rel="dns-prefetch" href="http://SERVERNAME/some.script.js">
<link rel="dns-prefetch" href="https://SERVERNAME/some.script.js">
<link rel="dns-prefetch" href="//SERVERNAME/some.script.js">
他们都尝试从 DNS 解析器请求 A 和 AAAA 资源记录,如果此类信息尚未存在于浏览器名称服务缓存中的话。
因此,性能相同。