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