Насколько я понимаю, DNS-сервер просто просматривает какую-то таблицу и находит IP-адрес, связанный с доменом, к которому вы пытаетесь получить доступ. Затем IP-адрес возвращается вашему браузеру, и браузер отправляет http-запрос на этот IP-адрес, и вы получаете возвращенный http-ответ (веб-страницу).

Когда я ищу или отслеживаю IP-адрес, например. wikipedia.org Я получаю:91.198.174.192

Но когда я пытаюсь получить доступ к этому IP-адресу напрямую, я не получаю обычную главную страницу wikipedia.org, а вместо этого получаю доступ к какому-то «материнскому» серверу в фонде Викимедиа.

Очевидно, что некоторая дополнительная информация должна отображаться помимо необработанного IP-адреса. Может кто-нибудь объяснить, как сервер знает разницу?

3 ответа3

1

Ваш браузер включает в запрос HTTP домен и документ, который он хочет от сервера. Например, www.wikipedia.com/index.html. На сервере может быть запущено несколько веб-сайтов, и ему потребуется эта информация, чтобы знать, какой веб-сайт и какую страницу вы хотите просмотреть. Если вы введете « http://91.198.174.192/ », ни домен, ни страница не будут отправлены с вашим запросом. Если на сервере нет домена по умолчанию, вы увидите ошибку. В этом случае доменом по умолчанию является небольшая ошибка веб-сайта.

1

Здесь есть несколько вещей.

В случае веб-сайта DNS действительно переводит доменное имя в IP-адрес, чтобы клиент знал сервер для связи. Из-за нехватки IP-пространства на одном сервере могут быть размещены несколько веб-сайтов, поэтому браузеры дополнительно сообщают серверу, какой сайт ему нужен (часть спецификации http 1.1, которая расширяет древнюю спецификацию 1.0, которая не сделай это). Конкретное поле, отправляемое клиентом на сервер (одно из первых), является заголовком Host:. В самом деле, если вы подключитесь к указанному IP-адресу, то наберите «GET /path/to/resource.file» host: domain.name. Веб-сайт http вернет результат HTML, если запрос.

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

0

В вашем вопросе есть два примера отображения:

  • Картирование в DNS
  • Отображение виртуального хоста

На стороне DNS каноническое сопоставление IP-адреса имени хоста DNS <-> - только одна из возможностей, она называется «A-запись» (или AAA для IPv6), но существуют другие типы записей, наиболее заметный из которых являются MX-записью, которая содержит информацию о том, с каким почтовым сервером следует связаться, если вы хотите отправить E-Mail на адрес в домене. Конечно, существует множество других, например, записи SOA (начало полномочий) и NS (сервер имен), которые объединяют древовидную структуру доменов в распределенной базе данных, которая является системой DNS.

Отображение виртуального хоста - это механизм, полностью независимый от DNS, который позволяет (начиная с версии HTTP 1.1) размещать разные WWW-домены на одном IP-адресе. Он работает через ваш браузер, получая доступ к IP-адресу, полученному из DNS, но дополнительно отправляя заголовок Host: с запрошенным доменом. По этой причине вы получили неожиданный ответ при вызове IP-адреса непосредственно в браузере: адрес был тем же, но заголовок Host: был другим.

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