我正在构建一个可与 Google Analytics 媲美的分布式小部件。用户将<script>
向其网站添加一个引用我的小部件的 JavaScript 文件的标签。
Google Analytics 跟踪代码如下所示:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);
(function () {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
有人能解释一下 HTTP 和 HTTPS 主机名分开的原因吗?我的直觉是只保护地址www
,然后使用无协议语法,例如//www.google-analytics.com/ga.js
。但我确信 Google Analytics 架构师对这种方法进行了大量思考。在遵循/忽略他们的模型之前,我很想了解他们的逻辑。
答案1
这比你想象的要简单得多。像 Google 这样规模的 SSL 流量需要加速卡,而加速卡非常昂贵。由于非 SSL 流量一直是其流量的主要来源,因此没有必要在所有服务器中都安装加速卡。将 SSL 流量放在自己的主机名上可以简化在安装加速卡的服务器和处理普通非加密流量的服务器之间分配流量的过程。
注意:这大大简化了 Google 的设置,但您明白我的意思。此外,正如 EEAA 指出的那样,过去几年情况发生了变化。因此,您可以将其归因于“历史原因”。