URL, домен и DNS
доменное имя делает адрес сайта удобным для людей, а DNS переводит его в IP-адрес для сети.
Почему это важно: Backend-разработчик постоянно работает с доменами, API-поддоменами, callback URL, настройкой продакшена и ошибками вида 'сервер доступен, но домен не резолвится'. Без понимания DNS эти проблемы выглядят магией.
Главная идея
Люди запоминают домены, а компьютеры работают с IP. DNS связывает эти два мира.
Как это выглядит на практике
- Пользователь вводит домен вроде example.com.
- Браузер или ОС проверяет локальный кэш DNS.
- Если записи нет, запрос уходит к DNS-резолверу.
- Резолвер находит IP-адрес домена и возвращает его клиенту.
- После этого браузер уже может обратиться к нужному серверу по IP.
Что происходит под капотом
- URL состоит из схемы, домена, иногда порта, пути и query-параметров. DNS участвует только в разрешении доменного имени в IP.
- Резолвинг часто проходит через несколько уровней: локальный кэш, DNS-сервер провайдера или публичный резолвер, а затем авторитетные DNS-серверы домена.
- У DNS-записей есть TTL — время жизни. Из-за него изменения домена не всегда начинают работать мгновенно после редактирования.
- Один домен может указывать не на один сервер, а на балансировщик, CDN или несколько IP-адресов в зависимости от конфигурации.
Типичные ошибки и заблуждения
- Ошибка: URL и домен — это одно и то же. Домен — лишь часть URL.
- Ошибка: DNS хранит содержимое сайта. На самом деле DNS хранит только информацию для поиска нужного узла.
- Ошибка: смена DNS-записи применяется мгновенно везде. Кэши и TTL могут задержать обновление.
- Ошибка: если домен открывается у одного разработчика, он точно доступен всем. Разные кэши и DNS-провайдеры могут давать разную картину.
Ключевые выводы
- URL включает не только домен, но и схему, путь, query-параметры и иногда порт.
- DNS не хранит страницу сайта - он только помогает найти нужный сервер.
- Кэш DNS ускоряет повторные обращения к тем же доменам.
- Поведение DNS влияет на деплой, доступность и время первой загрузки.
Термины урока
Связь с работой backend-разработчика
Понимание DNS полезно при настройке деплоя, доменов, API-поддоменов и устранении ошибок вида 'сайт не открывается, хотя сервер работает'.
Мини-разбор реальной ситуации
После деплоя API на новый сервер приложение по IP уже отвечает, но домен api.example.com всё ещё ведёт на старый адрес у части пользователей. Причина может быть не в коде и не в nginx, а в старой DNS-записи или её TTL.
Что запомнить
- URL шире, чем домен.
- DNS — это система поиска адреса сервера, а не хранения контента.
- При проблемах с доступностью нужно проверять не только приложение, но и доменные записи.
Итог
URL говорит, что именно нужно открыть, а DNS помогает понять, куда именно доставить запрос.