Это чисто из любопытства. Но если бы я набрал IP-адрес веб-сайта, прошел бы ли этот запрос процесс прямого просмотра? Если нет, то в какой момент и на каком этапе выясняется, что это местоположение по IP, а не по имени хоста в виде строки?
Кроме того, как это будет записано в моем хост-файле? Если он проходит весь процесс поиска, будет ли файл хоста содержать строку hostname, а также IP и заполняться локально?
2001:feed:face:dead::beef:8080
это IPv6-адрес с указанным портом, а не просто плохо отформатированный URL-адрес ...;)Ответы:
Если вы используете IP-адрес, ОС сразу узнает, что это IP-адрес, и не будет выполнять прямой просмотр.
Когда вы делаете HTTP-запрос, первым шагом является получение IP-адреса пункта назначения, чтобы браузер мог обмениваться данными с сервером. Для связи с сервером все происходит по IP, от IP-адреса до IP-адреса, и поэтому имя сервера не требуется для этой связи. Тем не менее, он передается в заголовках HTTP как
Host:
заголовок, чтобы веб-сервер знал, на каком веб-сайте вы находитесь, если на нем размещено несколько сайтов.В случае доступа по IP-адресу этого не происходит, и сайт по умолчанию представлен.
Ваш
hosts
файл является статическим файлом, он не изменяется ни при каких действиях, которые вы предпринимаете, за исключением случаев, когда вы непосредственно редактируете его (или имеете скрипты или приложения, которые его изменяют).источник
In the case of accessing by IP address, this does not happen, and the default site is presented.
Скорее всего, вы получите страницу с ошибкой.Как писали другие, используя IP-адрес, вы действительно пропускаете DNS, который позволяет получить доступ, например, к сайтам разработки без имени хоста.
Добавление псевдонима IP-имени хоста в / etc / hosts снова очень распространено для сайтов разработки. В отличие от непосредственного использования IP-адреса, это а) все же пропустит DNS; б) заставит браузер добавить
Host
заголовок запроса к HTTP-запросу, разрешив, например, виртуальные хосты на локальном сервере.источник