如果我将来自谷歌 CDN 的 jQuery 与客户网站上的 html 页面中的脚本标签链接起来,这对隐私有什么影响?
使用这些 CDN 服务的隐藏成本是多少?如果脚本没有被浏览器缓存并且它从谷歌加载脚本,谷歌可能会对这些信息做什么?它能否与搜索、分析或 Adsense 等其他服务一起有效地推断?没有什么是免费的,有什么问题?
和奖金问题....
如果脚本已经被浏览器缓存(304),浏览器是否仍然发出远程请求?
如果我将来自谷歌 CDN 的 jQuery 与客户网站上的 html 页面中的脚本标签链接起来,这对隐私有什么影响?
使用这些 CDN 服务的隐藏成本是多少?如果脚本没有被浏览器缓存并且它从谷歌加载脚本,谷歌可能会对这些信息做什么?它能否与搜索、分析或 Adsense 等其他服务一起有效地推断?没有什么是免费的,有什么问题?
和奖金问题....
如果脚本已经被浏览器缓存(304),浏览器是否仍然发出远程请求?
304是作为请求结果的响应。这是一个请求,其中包含有关它发出的最后一个请求的信息并得到一个 200,服务器或者从该请求中回复,200 OK
这是新的东西,或者304 Not Modified
然后在那里结束它(带有一些 HTTP 标头以便很好地衡量)。
但事实是,如果响应配置正确,浏览器甚至可能不会发出请求。我不知道头顶的标题,所以我只是通过浏览器浏览了 jquery 1.7.2 的 google CDN 请求。
HTTP/1.1 304 Not Modified
Date: Wed, 11 Apr 2012 15:01:19 GMT
Expires: Thu, 11 Apr 2013 15:01:19 GMT
Age: 122140
Server: GFE/2.0
因此,您可以看到它设置为 1 年后到期。我尝试将其作为本地 html 编辑器/网页页面中脚本的源,并且使用 Fiddler2,可以看到没有发出任何请求。现在,如果我再次浏览我的浏览器,我将收到相同的请求,但不是在我的编辑器中。
隐私方面,我不确定是否存在问题。如果 CDN 出现问题,当然,可能会有一些问题,当然也可能存在中间人攻击等,但如果这是您的担忧,那么无论如何您都应该使用 HTTPS。CDN 通常也提供 HTTPS。
依赖 CDN 的最大缺点是由于网络故障,您的客户端可能无法访问 CDN。所以提供备份总是好的。
这是一个例子:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write(unescape('%3Cscript src="/local/path/to/jQuery/jquery.1.7.1.min.js" type="text/javascript"%3E%3C/script%3E'));
}
</script>