Я создаю распределенный виджет, который можно сравнить с 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 много думали над этим подходом. Я бы хотел понять их логику, прежде чем следовать / игнорировать их модель.
Это намного проще, чем вы думаете. SSL-трафик в масштабе Google требовал ускорительных карт, которые были довольно дорогими. Поскольку основная часть их трафика всегда составляла не SSL, не имело смысла устанавливать карты ускорителей на все их серверы. Размещение SSL-трафика на собственном имени хоста упрощает разделение трафика между серверами с картами ускорителей и серверами, которые обрабатывают обычный незашифрованный трафик.
Примечание. Это значительно упрощает настройку Google, но идею вы поняли. Кроме того, как отмечает EEAA, за последние несколько лет все изменилось. Так что вы можете списать это на «исторические причины».