在src URL中没有协议的脚本会出什么问题?



httphttps协议提供的脚本的src URL中省略协议是否完全安全?

例如,在Google CDN上的jQuery代码可以这样访问:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

Facebook和jQuery都建议开发者在脚本标签中添加一个没有协议的源代码。他们的CDN服务HTTP和HTTPS协议,所以如果页面中有脚本在HTTP或HTTPS服务,它将获取脚本与匹配的协议。这是这种做法好的一面。

这有什么问题吗?我最担心的是安全问题。

从src URL中省略协议是完全安全的吗从HTTP和HTTPS协议服务?

是的。

当使用network-path reference时,浏览器将自动使用https:协议请求文件,当浏览器通过HTTPS查看页面时,否则它将使用http:请求文件。

但是,当使用network-path reference在本地查看文件时,浏览器将使用file:协议请求文件。

这里有更多的信息:RFC 3986。它没有提到安全性,但行为的性质确保https/http是根据需要选择的。

引用:

4.2。相对参考

相对引用利用了层次语法
(第1.2.3节)来表示相对于名称空间的URI引用

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

相对引用引用的URI,也称为目标URI,通过应用引用解析获得第5节的算法

以两个斜杠字符开头的相对引用是称为网络路径引用;这样的引用很少使用。以单个斜杠字符开头的相对引用是
称为绝对路径引用。
的相对引用不以斜杠字符开头的称为相对路径引用。

包含冒号字符的路径段(例如,"this:that")不能用作相对路径引用的第一部分,如
它会被误认为是一个方案名称。这样的段必须是
前面加一个点段(例如,"/this:that"),形成一个相对-
路径参考。

相关内容

  • 没有找到相关文章

最新更新