Доменное имя является указателем на IP-адрес, на котором размещен сервер. Думайте об этом как о разнице между адресом улицы "Пример улицы 42" (доменное имя) и домом по этому адресу (сервер). Вы можете вечно спорить о том, более ли семантически правильно называть server
domain
имен или домен в подобном примере. server
и domain
не равны, но для целей примера эквивалентны.
Синтаксис //
имеет особое значение. Это сокращение для «выберите http://
или https://
в зависимости от ситуации». Основой для этого синтаксиса является то, что браузеры имеют ограничения безопасности при загрузке ресурсов по протоколу http (незашифрованному) со страницы https (безопасный). Синтаксис //
полезен, когда сервер может обслуживать один и тот же контент как по http, так и по http. Таким образом, вместо того, чтобы позволить серверу или клиентскому сценарию решать, какой протокол использовать на основе протокола запрашиваемой страницы, URL-адрес просто всегда задается как URL-адрес, начинающийся с //
что позволяет браузеру справляться с этой сложностью.
Например, до того, как эта стенография была изобретена, вы можете увидеть код, подобный следующему, чтобы загрузить Google Analytics на страницу, которая может обслуживаться через http или https:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxx-y']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://')
+'stats.g.doubleclick.net/dc.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
Более современная версия этого будет выглядеть примерно так:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxx-y']);
_gaq.push(['_trackPageview']);
</script>
<script type="text/javascript" src="//stats.g.doubleclick.net/dc.js"></script>
В настоящее время браузер также обычно исключает часть http
из URL-адреса в поле адреса, возможно, для более точного соответствия тому, что типичный пользователь вводит в поле. Тем не менее, http
часть все еще подразумевается в этом случае. В зависимости от браузера это поведение можно отключить, чтобы всегда отображалась часть http
. А в некоторых браузерах часть http
становится видимой, когда вы фокусируете поле адреса.