Может ли веб-сервер узнать имя хоста, которое было преобразовано в IP-адрес веб-сервера? [closed]

Для веб-сервера виртуальный хостинг на основе имени использует имя хоста, указанное в заголовке Host в HTTP-запросе, полученном сервером.

Может ли веб-сервер узнать имя хоста, которое было преобразовано в IP-адрес веб-сервера?

Если да, означает ли это, что веб-сервер может также использовать имя хоста, которое было преобразовано в IP-адрес веб-сервера для виртуального хостинга?

Как веб-сервер может узнать имя хоста, которое было преобразовано в IP-адрес веб-сервера?

Спасибо.

-5
задан 14 February 2019 в 00:31
1 ответ

Веб-серверы не заботятся о том, как клиент их нашел, они заботятся только о том, какое (если есть) имя хоста содержится в HTTP-запросах.

Протокол HTTP предоставляет средства (называемые "заголовки хоста"), чтобы попросить веб-сервер "дать мне веб-сайт для www.host1.com " или "теперь дать мне один для www.host2.com ", и это то, что веб-сервер использует для выбора веб-контента для ответа, независимо от того, как было установлено фактическое сетевое соединение.

Обратите внимание, что нет никакой связи между заголовками хоста HTTP и DNS; обычно клиент (например, веб-браузер) запрашивает у DNS, какой IP-адрес соответствует www.host1.com , затем он подключается к этому IP-адресу, а затем выполнит HTTP-запрос, запрашивающий у веб-сервера www.host1.com ; но эти две вещи не имеют прямого отношения, и может быть несколько разных сценариев, например, клиенты, которые могут создавать собственные HTTP-запросы, или сопоставления имени хоста-IP, выполняемые клиентским локальным файлом hosts , или даже прокси (или обратные прокси-серверы), которые могут делать запросы от имени кого-то еще и настраивать их во время передачи.


Показательный пример: именно сегодня я тестировал веб-сайт, который нужно вызывать с определенным именем хоста; Чтобы протестировать его из моего веб-браузера, мне пришлось сопоставить его IP-адрес с этим именем хоста в файле hosts моего компьютера, поскольку реальная запись DNS для веб-сайта указывала в другом месте. Таким образом, когда я набрал www.mysite.com в своем браузере, он подключился к IP-адресу этого сервера, а затем фактически запросил у него www.mysite.com . DNS был полностью обойден (и это правильно, потому что я хотел подключиться к тестовой площадке, а не к настоящему).

3
ответ дан 5 December 2019 в 22:16

Теги

Похожие вопросы