11

Это чисто из любопытства. Но если бы я ввел IP-адрес веб-сайта, прошел бы ли этот запрос процесс прямого просмотра? Если нет, то в какой момент и на каком этапе выясняется, что это местоположение по IP, а не по имени хоста в виде строки?

Кроме того, как это будет записано в моем хост-файле? Если он проходит весь процесс поиска, будет ли файл хоста содержать строку имя хоста, а также IP и заполняться локально?

2 ответа2

15

Если вы используете IP-адрес, ОС сразу узнает, что это IP-адрес, и не будет выполнять прямой поиск.

Когда вы делаете HTTP-запрос, первым шагом является получение IP-адреса пункта назначения, чтобы браузер мог обмениваться данными с сервером. Для связи с сервером все происходит по IP, от IP-адреса до IP-адреса, поэтому имя сервера не требуется для этой связи. Однако он передается в заголовках HTTP как заголовок Host: чтобы веб-сервер знал, на каком веб-сайте вы находитесь, если на нем размещено несколько сайтов.

В случае доступа по IP-адресу этого не происходит, и сайт по умолчанию представлен.

Ваш файл hosts - это статический файл, он не изменяется ни при каких действиях, которые вы предпринимаете, за исключением случаев, когда вы его непосредственно редактируете (или у вас есть скрипты или приложения, которые его модифицируют).

2

Как писали другие, используя IP-адрес, вы действительно пропускаете DNS, который позволяет получить доступ, например, к сайтам разработки без имени хоста.

Добавление псевдонима IP-имени хоста в /etc /hosts снова очень распространено для сайтов разработки. В отличие от непосредственного использования IP-адреса, это а) все же пропустит DNS; б) заставит браузер добавить заголовок запроса Host запрос HTTP, разрешив, например, виртуальные хосты на локальном сервере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .