Начальный ~21 мин чтения

URL, домен и DNS

Урок 3 из 4 в курсе Как работает интернет

URL, домен и DNS

доменное имя делает адрес сайта удобным для людей, а DNS переводит его в IP-адрес для сети.

Почему это важно: Backend-разработчик постоянно работает с доменами, API-поддоменами, callback URL, настройкой продакшена и ошибками вида 'сервер доступен, но домен не резолвится'. Без понимания DNS эти проблемы выглядят магией.

Главная идея

Люди запоминают домены, а компьютеры работают с IP. DNS связывает эти два мира.

Как это выглядит на практике

  1. Пользователь вводит домен вроде example.com.
  2. Браузер или ОС проверяет локальный кэш DNS.
  3. Если записи нет, запрос уходит к DNS-резолверу.
  4. Резолвер находит IP-адрес домена и возвращает его клиенту.
  5. После этого браузер уже может обратиться к нужному серверу по IP.

Что происходит под капотом

  • URL состоит из схемы, домена, иногда порта, пути и query-параметров. DNS участвует только в разрешении доменного имени в IP.
  • Резолвинг часто проходит через несколько уровней: локальный кэш, DNS-сервер провайдера или публичный резолвер, а затем авторитетные DNS-серверы домена.
  • У DNS-записей есть TTL — время жизни. Из-за него изменения домена не всегда начинают работать мгновенно после редактирования.
  • Один домен может указывать не на один сервер, а на балансировщик, CDN или несколько IP-адресов в зависимости от конфигурации.

Типичные ошибки и заблуждения

  • Ошибка: URL и домен — это одно и то же. Домен — лишь часть URL.
  • Ошибка: DNS хранит содержимое сайта. На самом деле DNS хранит только информацию для поиска нужного узла.
  • Ошибка: смена DNS-записи применяется мгновенно везде. Кэши и TTL могут задержать обновление.
  • Ошибка: если домен открывается у одного разработчика, он точно доступен всем. Разные кэши и DNS-провайдеры могут давать разную картину.

Ключевые выводы

  • URL включает не только домен, но и схему, путь, query-параметры и иногда порт.
  • DNS не хранит страницу сайта - он только помогает найти нужный сервер.
  • Кэш DNS ускоряет повторные обращения к тем же доменам.
  • Поведение DNS влияет на деплой, доступность и время первой загрузки.

Термины урока

URL: полный адрес ресурса, например https://example.com/posts?sort=desc.
Домен: читаемое имя сайта, например example.com.
DNS: система, которая сопоставляет домены и IP-адреса.
Resolver: сервис, который выполняет DNS-поиск.

Связь с работой backend-разработчика

Понимание DNS полезно при настройке деплоя, доменов, API-поддоменов и устранении ошибок вида 'сайт не открывается, хотя сервер работает'.

Мини-разбор реальной ситуации

После деплоя API на новый сервер приложение по IP уже отвечает, но домен api.example.com всё ещё ведёт на старый адрес у части пользователей. Причина может быть не в коде и не в nginx, а в старой DNS-записи или её TTL.

Что запомнить

  • URL шире, чем домен.
  • DNS — это система поиска адреса сервера, а не хранения контента.
  • При проблемах с доступностью нужно проверять не только приложение, но и доменные записи.

Итог

URL говорит, что именно нужно открыть, а DNS помогает понять, куда именно доставить запрос.