Как уеб сървърите знаят, ако използвате пряк достъп до IP адрес или не?
Обикновено ние просто въвеждаме адреса на уебсайт, който искаме да видим, но уеб сървърът би ли „знаел“, ако вместо това използваме директния IP адрес? Днешната публикация за въпроси и отговори SuperUser има отговор на объркан въпрос на читателя.
Днешната сесия за въпроси и отговори идва при нас с любезното съдействие на SuperUser - подразделение на Stack Exchange, групирано от общността уеб сайтове за въпроси и отговори.
Снимката е предоставена от Кори М. Грение (Flickr).
Въпроса
Читателят SuperUser Joseph A. иска да знае как уеб сървърите могат да разберат дали използвате пряк достъп до IP адрес или не:
Някои уеб сървъри, когато получат достъп чрез своя IP адрес, връщат грешка, че не е позволен пряк достъп до IP адрес. От известно време се чудя как става това.
Браузърът винаги ли разрешава IP адреса и се свързва с него? Директният достъп до IP адрес е просто прескачане на DNS, нали? Как един отдалечен сървър дори знае, че сте пропуснали DNS?
Как уеб сървърите знаят дали използвате пряк достъп до IP адрес или не?
Отговорът
Сътрудникът на SuperUser iAdjunct има отговор за нас:
За да отговорите на въпроса ви за това, как се знае, това е свързано с това, което браузърът ви изпраща на уеб сървъра. Правилно сте, че системата винаги я разрешава на IP адрес, но браузърът изпраща URL адреса, който сте опитали да влезете в заглавката на HTTP..
Ето примерна заглавка, която открих онлайн, модифицирана, за да изглежда така, сякаш сте използвали Firefox в Windows и сте въвели apple.com в адресната лента:
Ето как би изглеждал заглавието, ако използвате неговия IP адрес:
И двете ще бъдат изпратени на един и същ IP адрес през сокет, но браузърът казва на уеб сървъра какво има достъп. Защо? Тъй като уеб сървърите с един и същ IP адрес могат да бъдат домакин на няколко уебсайта и да дават различни страници за всеки. Не може да се различи кой иска коя страница по IP адрес, защото всички те имат една и съща, но може да ги различи по заглавката на HTTP.
Имате ли какво да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други технологични потребители на Stack Exchange? Вижте пълната тема за дискусия тук.