Зазвичай ми просто вводимо адресу веб-сайту, який ми хочемо переглянути, але чи справді веб-сервер “знає”, якби замість цього ми використовували пряму IP-адресу? Сьогоднішня публікація запитань та запитань SuperUser містить відповідь на запитання читача.
Сьогоднішня сесія запитань і відповідей надійшла до нас люб’язно від 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? Ознайомтесь із повним обговоренням тут .