我的网站使用相对协议加载外部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预取链接更改为相对协议是否有任何性能优势?
我曾经想到的是,因为所有dns预取都是从主机名解析IP,所以在预取中使用http实际上是有益的,以避免需要进行SSL握手。但是这假设dns-prefetch链接指示浏览器发出网络请求,我不确定它是在发生什么。
答案 0 :(得分:1)
以下三行<浏览器支持的 ,执行相同的操作:
<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资源记录。
因此,表现是一样的。