2

URL-адрес имеет формат:

scheme://server:port/pathname      

В чем здесь разница между сервером и доменным именем? //superuser.com/questions/ask является (относительным) URL-адресом.

Схема опущена (http: . Сервер superuser.com . Может, сервер равен доменному имени?

5 ответов5

2

Сервер - это физическая часть оборудования. Это оборудование имеет несколько IP-адресов, связанных с ним. На сервер часто ссылаются, ссылаясь на один из IP-адресов, связанных с ним, или по имени домена, которое указывает на этот IP-адрес.

Стоит отметить, что сервер может (и в случае веб-сайтов, как правило, имеет) иметь несколько доменов, связанных с ним.

Говоря технически, я бы сказал, что некорректно использовать «server:port» в URL-адресе HTTP - это должно быть domain:port, но в любом случае это обычная практика. В некоторых схемах адресации (например, FTP), называть его сервером имеет смысл, потому что нет никакой разницы, если на сервер ссылается (любой) домен, связанный с ним, или его IP-адрес. [HTTP имеет дополнительную логику, поэтому сервер может определить, к какому домену относится ссылка]

0

Доменное имя является указателем на 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 становится видимой, когда вы фокусируете поле адреса.

0

Вы, вероятно, имеете в виду host (который является частью authority).

STD 66 (стандарт URI) определяет:

Подкомпонент хоста власти идентифицируется литералом IP, заключенным в квадратные скобки, адресом IPv4 в десятичной форме с точками или зарегистрированным именем.

[...]

host = IP-literal / IPv4address / reg-name

(Эти части определены в связанном разделе «3.2.2. Host».)

Таким образом, host может быть IP или доменным именем.

Обратите внимание, что в формате URI, который вы включили в свой вопрос (который не является стандартным форматом), неясно, что именно вы имеете в виду под server . Компонентом authority также может быть информация о пользователе (userinfo), например, для предоставления имени пользователя и пароля для входа в систему.

0

В данном примере разницы нет.

В некотором смысле, полное доменное имя (FQDN) является именем сервера. Но это (как следует из названия) полностью определенное имя. Имя сервера будет superuser , но оно находится в домене com . Таким образом, полное имя будет superuser.com .

-2

Сервер здесь означает его адрес.

http://74.125.224.72/

Это один из IP-адресов Google. Но я сомневаюсь, что кто-либо может сказать "74.125.224.72" его ответ.

Доменные имена - это просто способ превратить IP-адреса в нечто более понятное человеку, например

http://google.com/

Так что в обоих случаях вы поставили сервер. Первый способ - это его IP, а второй - это доменное имя, которое на лету транслируется на его IP с помощью DNS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .