Насколько я понимаю, DNS используется для разрешения доменных имен в IP-адреса. Я использую Ubuntu. Я сделал следующее. nslookup facebook.com
дал мне IP сайта. Я заблокировал DNS с помощью брандмауэра. Я набрал IP в браузере. Он должен был загрузить сайт Facebook, но это не так. Если я разблокирую DNS, то вышеупомянутый метод выбирает сайт. Почему это происходит - я имею в виду, почему DNS требуется, когда у меня есть IP-адрес веб-сайта?
1 ответ
Когда вы получаете доступ к веб-сайту через HTTP, доменное имя используется не только для DNS; он также отправляется по самому HTTP (как заголовок Host:
:). Таким образом, один и тот же сервер может размещать множество веб-сайтов (иногда один или два, иногда сотни одновременно) на одном и том же IP-адресе, называемом виртуальным хостингом.
При HTTPS-соединениях одно и то же имя отправляется также по TLS (как расширение индикации имени сервера), поэтому сервер может выбрать, какой сертификат использовать для какого сайта, опять же при размещении множества сайтов на одном IP-адресе.
Но если вы попытаетесь получить доступ к https://<ip-address>/
, браузер ничего не сможет отправить, поэтому сервер также не знает, какой сайт вам нужен.
(Я почти уверен, что на это уже много раз отвечали, но я не могу найти хороший пост на сайте)