https://en.wikipedia.org/wiki/Virtual_hosting говорит
Виртуальные хосты на основе имени используют несколько хостов имена для одного и того же IP-адреса.
Соответствует ли «имя хоста» IP-адресу или паре IP-адреса и порта?
Нужно ли указывать порт при указании «имени хоста»?
Если это имеет значение, учитывайте только виртуальный хостинг.
Спасибо.
«Виртуальный хост» - это просто функция части программного обеспечения, которая использует преимущества дополнительного контекста в запросе, чтобы действовать иначе.
Важная вещь для обратите внимание, что сам TCP / IP ничего не знает об именах хостов; их основная цель - найти IP-адреса.
Классическим примером является HTTP-сервер, использующий виртуальный хостинг на основе имени, который работает следующим образом:
Имена хостов не соответствуют кортежу {ipaddress, port}. Имя хоста - это только имя сервера, которое должно разрешаться в один или несколько IP-адресов. Порты вообще не имеют ничего общего с именами хостов.
Имена хостов обрабатываются DNS (или другим способом разрешения имен, например файлом хоста). Веб-серверы прослушивают IP-адреса / сокеты, но при запуске виртуальных хостов они также просматривают заголовок запроса, чтобы узнать, какое полное доменное имя использовалось для запроса страницы.
Когда веб-сервер, на котором запущены виртуальные хосты, отвечает на запрос, он смотрит на заголовок запроса чтобы узнать, исходит ли запрос от хоста, о котором он знает, затем обслуживает правильную страницу. т.е. если у меня есть сервер с виртуальным хостом для initech.xyz,DNS укажет ему IP-адрес моего веб-сервера, который прослушивает порты http / s по умолчанию (80/443). В зависимости от конфигурации вы можете включать / выключать разные порты, на которые отвечает каждый виртуальный хост, но с точки зрения IP / порта, если порт включен, он открыт.
Также DNS может иметь несколько IP-адресов, разрешаемых в одно имя, и наоборот.