В предыдущих статьях мы рассказали, как придумали доменные имена и кто контролирует их работу. Сегодня узнаем, как браузер понимает, где находится сайт, когда мы вводим в адресной строке домен.
Что такое DNS
DNS — это технология, которая помогает браузеру найти правильный сайт по доменному имени.
Вы уже знаете, что компьютеры находят друг друга в интернете по IP-адресам. Чтобы подключиться к серверу с конкретным сайтом, нужно знать его IP-адрес. Похожим образом устроена мобильная связь: чтобы позвонить конкретному человеку, нужно знать его номер.
Людям неудобно использовать длинные комбинации цифр, поэтому IP-адреса придумали связывать с понятными текстовыми именами — доменами. Всё-таки запомнить google.com проще, чем 216.58.209.14.
По такой же логике мы сохраняем важные номера в контакты смартфона. Только в случае с доменами, ничего сохранять не нужно. Мы просто вводим в адресной строке домен, а браузер сам находит IP-адрес нужного сервера и открывает сайт.
ВИДЕО ПО ТЕМЕ:
Прочитать статью — хорошо, а прочитать статью
и посмотреть видео — еще лучше!
Смотрите наше видео о том, что такое домен и IP-адрес сайта
Как это работало раньше
В первые годы интернета доменам присваивали IP-адреса вручную. Их записывали в текстовый файл hosts.txt в таком формате:
216.58.209.14 google.com
По сути это и был список контактов, как в смартфоне. Когда пользователь вводил в адресной строке домен, браузер проверял файл и брал из него IP-адрес.
Главным файлом управлял Стэнфордский исследовательский институт. Чтобы добавить в список новый сайт, нужно было звонить в институт по телефону. После этого все компьютеры в сети должны были скачать обновлённый файл.
Со временем такой подход стал отнимать много времени, так как требовалось вносить всё больше и больше данных, и технологию решили усовершенствовать. Новую систему придумали Пол Мокапетрис и Джон Постел в 1984 и назвали её DNS-протокол. Аббревиатура означала Domain Name System, по-русски — Система доменных имён.
Что такое DNS-сервер
Настройки каждого домена в интернете хранятся в текстовых файлах на DNS-серверах.
DNS-сервер — это специальный компьютер, который хранит IP-адреса сайтов. Основные функции сервера DNS — выдавать браузеру адрес сайта по доменному имени и кэшировать DNS-записи домена.
То есть сервер DNS простыми словами — это всё та же «книга контактов», тот же файл hosts.txt, только больших масштабов.
Когда вы открываете в браузере сайт, в поиске IP-адреса домена обычно участвуют несколько DNS-серверов:
▶️ Локальный DNS-сервер вашего интернет-провайдера. Браузеры используют DNS-сервер провайдера, чтобы с его помощью узнать IP-адрес сервера, где находится сайт. Для этого в каждом браузере есть специальная программа — DNS-клиент. Вместо серверов вашего провайдера может быть любой другой публичный DNS-сервер, если вы укажете его в сетевых настройках. Например, вместо DNS-серверов интернет-провайдера можно использовать публичные серверы DNS от Google.
▶️ DNS-сервер верхнего уровня. DNS-серверы верхнего уровня содержат информацию о DNS-зоне и называются корневыми. Они выдают по запросу DNS-серверы доменов первого уровня, например, COM, UA, ORG, NET, ONLINE. Корневыми серверами управляют разные организации. Впервые такие DNS-серверы появились в Северной Америке, но со временем их количество росло и они появлялись в других странах. Сейчас есть 13 основных DNS-серверов верхнего уровня и множество реплик.
▶️ DNS-сервер, который отвечает за домен и где хранятся записи доменного имени. Адреса DNS-серверов владельцу домена обычно приходится указывать вручную — их присылает хостинг-провайдер. Например, наши публичные DNS-серверы — dns1.hostiq.ua и dns2.hostiq.ua.
Как браузер находит IP-адрес домена
Разберёмся пошагово, как браузер понимает, где находится сайт, когда мы вводим в адресной строке домен:
Шаг 1 Вы вводите в адресной строке доменное имя, например, google.com. Сначала браузер проверяет файл hosts.txt на компьютере. Если там не оказывается нужного IP-адреса, он обращается к локальному DNS-серверу вашего интернет-провайдера. Его IP-адрес браузер находит в настройках подключения к интернету.
Шаг 2 Локальный DNS-сервер не знает нужного IP-адреса лично, но умеет обмениваться информацией с другими DNS-серверами. Пока браузер ждёт ответа, локальный DNS-сервер обращается к главным серверам в мире — корневым DNS-серверам — и просит IP-адрес для google.com. Корневой DNS-сервер не знает IP-адрес этого домена, но знает IP-адреса DNS-серверов, которые отвечают за все домены в зоне .com.
Шаг 3 Локальный DNS-сервер получает IP-адрес одного из этих DNS-серверов и задаёт тот же вопрос ему. Этот DNS-сервер тоже не знает IP-адрес Гугла, но знает IP-адреса DNS-серверов, которые использует google.com.
Шаг 4 Локальный DNS-сервер получает IP-адрес одного из этих DNS-серверов и обращается к нему. Этот DNS-сервер знает нужный IP-адрес и отправляет его локальному DNS-серверу.
Шаг 5 Локальный DNS-сервер получает нужный IP-адрес и отправляет его браузеру.
Шаг 6 Браузер получает IP-адрес google.com, обращается напрямую к серверу и просит отправить сайт.
Статья по теме:
Типы DNS-записей и как ими управлять
Мы рассказали, как браузер находит IP-адрес домена для открытия сайта, но к доменному имени могут быть привязаны и другие ресурсы, например, почта. Для разных задач есть разные типы DNS-записей. Рассмотрим на примере нашей Панели клиента, что это за записи и как их создавать.
При добавлении DNS-записей любого типа работает правило: чтобы создать запись для домена, поле «Имя хоста» должно оставаться пустым. Если запись нужна для поддомена — в «Имя хоста» нужно вписать только уникальную часть.
А-запись — используется для направления домена на IP-адрес сервера. Выберите в выпадающем списке тип записи «A (Address)» и в поле «Адрес» укажите нужный IP.
АААА-запись — та же А-запись, только в поле «Адрес» указывается IPv6, а не привычный IPv4.
CNAME-запись — позволяет указать псевдоним для домена. При создании этой записи в поле адреса вписывается желаемый псевдоним. Если взять пример из скриншота ниже, то при переходе по домену www.domain.com нас перенаправит на адрес hostiq.ua.
МХ-запись — нужна для работы почты, в поле для адреса указывается хостнейм почтового сервера. Для этого типа записей есть ещё один параметр — приоритет. Наивысшим приоритетом считается 0, но обычно для самых приоритетных записей указывают 10, для менее — 20, 30.
ТХТ-запись — используется для передачи текстовой информации. В качестве адреса указывайте нужный текст, например, проверочную запись.
Мы перечислили записи, которые используются чаще всего, и для работы сайта их обычно достаточно, но в реальности видов DNS-записей намного больше.
Зарегистрируйте свой домен с HOSTiQ.ua: это выгодно и удобно 🔥
✔️ Удобное управление DNS-записями в личном кабинете.
✔️ Регистрация доменов более чем в 1200 доменных зонах: если желаемое имя занято в распространенных зонах вроде .com или .net, вы точно найдете классный аналог.
✔️ Вместе с регистрацией домена вы можете получить бесплатный хостинг с конструктором сайтов на месяц.
Если у вас уже есть зарегистрированный домен, вы можете перенести его к нам. У нас круглосуточная умная служба поддержки и фиксированная в долларах стоимость доменов: мы не будем менять цену, как нам угодно. Обещаем заботиться о вашем домене, как о своем 🙂
Файл hosts и чем он полезен
Несмотря на появление DNS-серверов, файл hosts все еще используется. В поисках IP-адреса сайта браузер в первую очередь проверяет файл hosts и только потом обращается к DNS-серверам. Поэтому разработчики часто используют этот файл при создании сайта без зарегистрированного домена или для проверки работы ресурса с локального сервера. Тогда в файле hosts указывается запись вида:
156.23.55.13 domain.com
После этого браузер будет открывать сайт domain.com по адресу 156.23.55.13, не зависимо от того, какая информация указана на DNS-серверах.
Читайте подробнее о том, как найти этот файл и правильно внести в него записи, в нашей статье про файл hosts.
DNS-кэш
Локальные DNS-серверы умеют кэшировать настройки, чтобы быстрее выдавать информацию при повторных запросах. Из-за этого случаются ситуации, когда владелец домена поменял настройки, но браузер показывает старую страницу, потому что получает IP-адрес из кэша.
В большинстве случаев IP-адреса хранятся в кэше полчаса. Если вы поменяли IP-адрес на своём домене, но видите в браузере старую страницу, — подождите немного. Как только кэш удалится, локальный DNS-сервер пройдёт цепочку DNS-запросов ещё раз и вы увидите новую страницу.
Попасть в кэш может не только IP-адрес, но и запись о DNS-серверах, которые использует домен. Кэш этих записей хранится дольше — 48 часов. Поэтому старый сайт может открываться дольше, если вместо IP-адреса владелец домена менял DNS-серверы.
DNS-кэш на стороне интернет-провайдера можно очистить дистанционно:
Если пользуетесь Windows, нажмите комбинацию клавиш Win + R и напишите в открывшемся окне cmd. Когда откроется командная строка, выполните в ней команду:
ipconfig/flushdns
В конце должно появиться сообщение «Кэш сопоставителя DNS успешно очищен».
Если пользуетесь MacOS, найдите в поиске «Терминал» или откройте «Finder» — «Программы» — «Утилиты» — «Терминал». В открывшемся окне выполните команду:
dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Кэш удалится после ввода пароля.
При покупке на год — скидка 30%
На этом всё. В следующий раз расскажем о субдоменах и сферах их применения. А пока — комикс про цепочку DNS-запросов, чтобы закрепить информацию:
Вам могут понравиться другие наши статьи на смежные темы: