http://和//之间的区别

时间:2014-08-16 02:25:44

标签: javascript html dns

我注意到CDN在脚本源的开头使用了//

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>  

这在本地(显然)不起作用,所以我在http:之前添加//

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>  

那么......为什么他们将//放在开头而不是http://?有什么意义?是某种DNS预取吗?

另外,如果脚本元素位于页面底部,那么//是否无效?

https://developer.mozilla.org/en-US/docs/Web/HTTP/Controlling_DNS_prefetching

1 个答案:

答案 0 :(得分:10)

//是一个相对协议指标。它将加载当前正在使用的任何协议。如果您通过http:加载页面,则会将资源加载到http:上。如果您在https:上加载,则会加载https:。这很重要,因为通过HTTPS加载的页面也应该通过HTTPS加载其资源以用于安全目的。

它不能在本地工作的原因是因为在本地,您使用file:协议(显然),所以它会尝试加载资源{ {1}},由于它是一个URL,而不是您目录中资源的文件路径,因此无法工作。

您可能还想查看this page描述其用法(提示,常见陷阱等)和标记。