Назад | Перейти на главную страницу

Есть ли подобие изначально запрошенного доменного имени в HTTP, после DNS-разрешения?

Мой понимание о том, как работают разрешение DNS и веб-браузеры, выглядит следующим образом:

  1. Ваш браузер использует систему DNS, которая в конечном итоге подключает его к серверам имен ваших регистраторов.
  2. Затем серверы имен вашего регистратора, в конечном итоге, отправляют сопоставленный IP-адрес обратно в ваш браузер.
  3. Затем ваш браузер устанавливает прямое HTTP-соединение с IP-адресом, возвращаемым сервером имен регистратора.

Если что-то, что я сказал до сих пор, неточно, вводит в заблуждение или опускает какие-либо основные компоненты, пожалуйста начни с исправления меня!

Предполагая, что мое понимание разрешения DNS и поиска IP-адресов более или менее на должном уровне, у меня возникает следующий вопрос:

После того, как браузер преобразовал доменное имя в IP-адрес (через DNS), он устанавливает прямое HTTP-соединение с этим IP-адресом. При этом есть ли ссылка что бы то ни было изначально запрошенного URL?

Другими словами, скажите blah.example.com разрешается на IPv4-адрес 1.2.3.4. Просьба к http://blah.example.com/fizz затем будет переведен в запрос на http://1.2.3.4:80/fizz. У меня вопрос: в этом втором запросе (который напрямую ссылается на IP-адрес) есть ли ссылки на заголовки / метаданные blah.example.com?

я смотрел на Список стандартных заголовков HTTP-запросов в Википедии, и, к моему большому разочарованию, не смог найти ничего выделяющегося. Думаю, я как бы надеялся на заголовок вроде Requested-URL, и т.д.

Там должен быть некоторые способ привязать второй HTTP-запрос к первоначально запрошенному имени, иначе я не думаю, что прокси или балансировщики нагрузки когда-либо могли бы работать.

Это в заголовке Host:

curl -v http://www.google.ca/ >/dev/null
* Hostname was NOT found in DNS cache
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 2607:f8b0:400c:c03::5e...
* Connected to www.google.ca (2607:f8b0:400c:c03::5e) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: www.google.ca
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Mon, 03 Nov 2014 15:31:59 GMT
< Expires: -1
< Cache-Control: private, max-age=0
< Content-Type: text/html; charset=ISO-8859-1
< Set-Cookie: PREF=ID=eb76c9020ebd6a26:FF=0:TM=1415028719:LM=1415028719:S=pxxk1qaEXquTWjHO; expires=Wed, 02-Nov-2016 15:31:59 GMT; path=/; domain=.google.ca
< Set-Cookie: NID=67=bzNq9pQagemSuByTb3SUrkchTiOk9KshhQuO4qyTcjH-Z5lo92jfP9bfpW8twUDan65AslDGV1DyWnjJ2C17BqDVUQ6OGrq2BG3WFcGbCJladFmS0WAxEr7CinTF_I5S; expires=Tue, 05-May-2015 15:31:59 GMT; path=/; domain=.google.ca; HttpOnly
< P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
* Server gws is not blacklisted
< Server: gws
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
< Alternate-Protocol: 80:quic,p=0.01
< Transfer-Encoding: chunked
< 
{ [data not shown]
100 17846    0 17846    0     0  92164      0 --:--:-- --:--:-- --:--:-- 92466
* Connection #0 to host www.google.ca left intact