как мой веб-браузер разрешает доменные имена? - PullRequest
5 голосов
/ 08 декабря 2010

Я разрабатываю сетевое приложение, которое должно поддерживать связь с DNS-серверами.

Мне было интересно, что будет лучшим способом сделать это.И браузеры пришли мне в голову.

Например, как Firefox или Chrome разрешают доменные имена, которые я помещаю в строку URL?

Я имею в виду, я набираю http://www.google.com, какон знает, что должен сделать TCP-запрос к IP 209.85.195.104?

Спасибо!

Ответы [ 4 ]

7 голосов
/ 08 декабря 2010

Вот хороший комикс, который описывает, как ваш браузер разрешает имена хостов:

http://www.labnol.org/internet/comic-how-browser-works/18086/

Ваша среда должна быть в состоянии обработать разрешение имени хоста для вас. Есть ли причина, по которой вам нужно реализовать это самостоятельно?

4 голосов
/ 09 декабря 2010

В самом простом сценарии браузеры будут использовать функцию, такую ​​как gethostbyname(), для преобразования имен в адреса. Однако эта функция не всегда реализована таким образом, который удобен для браузера (обычно он блокируется до получения ответа).

Браузеры сегодня начинают использовать «DNS prefetch» ​​, где браузер будет отправлять DNS-запросы непосредственно на DNS-сервер во время загрузки страницы, чтобы разрешить адреса до того, как пользователь нажмет следующую ссылку. Таким образом, пользователю не нужно ждать разрешения имени, когда он щелкает, и работа в Интернете появляется быстрее.

1 голос
/ 09 декабря 2010

Попробуйте это:

http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=7992

Соответствующим RFC является rfc1035.txt

или источник разрешения Google для DNS.

0 голосов
/ 06 ноября 2018

Веб-браузер отправляет запрос на DNS-сервер. Сервер отправляет список ассоциированных адресов (если запись имени домена имеет несколько IP-адресов - например, cnn.com с несколькими адресами IPv4 и IPv6). Я не уверен, хранит ли этот адрес браузер или операционные системы, но если браузер использует первый адрес и не получите ответ, он будет использовать другой адрес из списка. Я где-то читал, что он ждет максимум 30 секунд, пока он не использует другой адрес из списка.

...