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