Обычно мы просто вводим адрес веб-сайта, который хотим просмотреть, но будет ли веб-сервер «знать», если вместо этого мы будем использовать прямой IP-адрес? Сегодняшнее сообщение SuperUser Q & A содержит ответ на запутанный вопрос читателя.
Сегодняшняя сессия вопросов и ответов приходит к нам благодаря SuperUser – подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Фото любезно предоставлено Кори М. Гренье (Flickr).
Вопрос
Читатель SuperUser Джозеф А. хочет знать, как веб-серверы могут определить, используете ли вы прямой доступ по IP-адресу или нет:
Некоторые веб-серверы при обращении с использованием своего IP-адреса выдают ошибку, что прямой доступ по IP-адресу не разрешен. Некоторое время я задавался вопросом, как это работает.
Всегда ли браузер разрешает IP-адрес и подключается к нему? Прямой IP-адрес просто пропускает DNS, верно? Как удаленный сервер узнает, что вы пропустили DNS?
Как веб-серверы узнают, используете ли вы прямой доступ по IP-адресу или нет?
Ответ
Участник SuperUser iAdjunct имеет ответ для нас:
Чтобы ответить на ваш вопрос о том, как он узнает, это связано с тем, что ваш браузер отправляет веб-сервер. Вы правы, что система всегда разрешает его в IP-адрес, но браузер отправляет URL-адрес, к которому вы пытались получить доступ, в заголовке HTTP.
Вот пример заголовка, который я нашел в сети, модифицированный так, чтобы вы выглядели так, как будто вы использовали Firefox в Windows и набрали apple.com в адресную строку:
Вот как будет выглядеть заголовок, если вы используете его IP-адрес:
Оба они будут отправлены на один и тот же IP-адрес через сокет, но браузер сообщает веб-серверу, к чему он обращался. Зачем? Потому что веб-серверы с одинаковым IP-адресом могут размещать несколько веб-сайтов и предоставлять разные страницы для каждого. Он не может различить, кому нужна какая страница по IP-адресу, потому что у них всех один и тот же, но он может различить их по заголовку HTTP.
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других опытных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь.