Ответ 1
"Две косые черты" являются общим сокращением для "любого протокола, который используется прямо сейчас".
Наиболее известные как "относительные URL-адреса протокола", они особенно полезны, когда элементы, такие как JS файл в вашем примере, могут быть загружены из контекста http
или https
. Используя относительные URL-адреса протокола, вы можете избежать реализации
if (window.location.protocol === 'http:') {
myResourceUrl = 'http://example.com/my-resource.js';
} else {
myResourceUrl = 'https://example.com/my-resource.js';
}
тип логики по всей вашей кодовой базе (при условии, конечно, что сервер в example.com
может обслуживать ресурсы через http
и https
).
Известным примером в реальном мире является механизм Magento E-Commerce: по соображениям производительности на страницах магазина по умолчанию используется обычный http
, тогда как проверка https
включена.
Когда жестко закодированные ресурсы (например, рекламные баннеры в заголовке сайта) ссылаются на относительные URL-адреса, отличные от протокола (т.е. http://example.com/banner.jpg
), клиенты, достигшие проверки с включенным https
, будут встречены с довольно недружественным
"на этой странице есть небезопасные элементы"
подсказка - которая, как вы можете себе представить, выбрасывает среднего неспециалиста человека.
Если вышеупомянутый ресурс ссылается через //example.com/banner.jpg
, хотя браузер позаботится о добавлении надлежащего протокола.
tl; dr: даже при минимальной возможности смешанной среды http/https просто используйте относительные URL-адреса с двойной косой чертой/протоколом для загрузки ваших ресурсов. Предполагая, что хост, обслуживающий контент, поддерживает HTTP и https.