Как веб-серверы узнают, используете ли вы прямой доступ по IP-адресу или нет?
Обычно мы просто вводим адрес веб-сайта, который хотим просмотреть, но будет ли веб-сервер «знать», если вместо этого мы будем использовать прямой 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? Ознакомьтесь с полным обсуждением здесь.