В виртуальном хостинге через IP-адрес или виртуальном хостинге через номер порта, веб-сервер решает, какой веб-сайт обслуживать на основе IP-адреса или номера порта, на который был отправлен запрос. к.
Когда веб-сервер получает HTTP-запрос, как он может узнать IP-адрес и номер порта, на который был отправлен запрос?
Содержит ли запрос IP-адрес и номер порта, и если да, считывает ли сервер IP-адрес и номер порта из запроса?
Если нет, вызывает ли веб-сервер некоторую функцию в библиотеке сокетов для получить IP-адрес и номер порта?
Спасибо.
Веб-сервер использует стек TCP операционной системы socket для связи с удаленными конечными точками по протоколу TCP.
Этот сокет содержит информацию о конечной точке, включая IP-адрес и порт, который удаленная конечная точка использовала для подключения к сокету. Эту информацию можно получить с помощью функции getsockopt ()
с соответствующими аргументами.
Итак, ответ заключается в том, что веб-сервер считывает удаленный IP-адрес из параметров сокета.