Как работает веб: DNS, IP, домены
DNS (Domain Name System) — распределённая система, которая переводит человекочитаемые доменные имена в IP-адреса, необходимые для сетевой маршрутизации.
Зачем нужно
Понимание цепочки DNS → IP → TCP-соединение → HTTP объясняет задержки при первом запросе, помогает диагностировать проблемы с развёртыванием и настраивать CDN. Разработчик, знающий как браузер «находит» сервер, лучше понимает CORS, SSL, и почему изменения DNS вступают в силу не сразу.
Где используется
- Настройка доменов и DNS-записей при деплое
- Диагностика проблем подключения (
nslookup,dig,ping) - Настройка HTTPS-сертификатов (верификация через DNS TXT-запись)
- CDN и геораспределённые системы (DNS-балансировка)
Путь от URL до ответа сервера
Шаг 1: Пользователь вводит https://example.com в браузер
Шаг 2: Браузер проверяет кэш DNS (несколько мс)
/etc/hosts → браузерный кэш → ОС кэш
Шаг 3: DNS-запрос (если не в кэше)
Браузер → Резолвер провайдера (8.8.8.8 или 1.1.1.1)
→ Root DNS (знает .com NS)
→ TLD DNS .com (знает example.com NS)
→ Авторитативный NS (знает A-запись)
Ответ: example.com → 93.184.216.34
Результат кэшируется по TTL
Шаг 4: Браузер подключается к 93.184.216.34:443 (TCP + TLS handshake)
Шаг 5: HTTP-запрос через установленное соединение
GET / HTTP/2 Host: example.com
Шаг 6: Сервер отвечает HTML → браузер рендерит страницу
Типы DNS-записей
A — домен → IPv4 адрес
example.com → 93.184.216.34
AAAA — домен → IPv6 адрес
example.com → 2606:2800:220:1:248:1893:25c8:1946
CNAME — алиас на другое имя
www.example.com → example.com
MX — почтовый сервер для домена
example.com → mail.example.com (priority 10)
TXT — произвольный текст (верификация, SPF, DKIM)
_acme-challenge.example.com → "abc123..." (HTTPS сертификат)
NS — авторитативные DNS-серверы
example.com → ns1.dnsprovider.com
ALIAS/APEX CNAME — CNAME для корневого домена (у некоторых провайдеров)
Диагностика DNS
# Резолвинг домена
nslookup example.com
dig example.com A
# Подробный трейс DNS
dig +trace example.com
# Проверка с конкретным DNS-сервером
dig @8.8.8.8 example.com A
# Время резолвинга
time nslookup example.com
IP-адреса и порты
IPv4: 192.168.1.100 (4 байта, ~4 млрд адресов)
IPv6: 2001:db8::1 (16 байт, 3.4×10^38 адресов)
Порты по умолчанию:
HTTP → 80 (браузер подставляет автоматически)
HTTPS → 443
SSH → 22
FTP → 21
localhost = 127.0.0.1 = ::1 (loopback — ваш компьютер)
Частые ошибки
- Не учитывают TTL при смене DNS — изменения могут не применяться до 48 часов
- Путают
CNAMEиA-запись — CNAME нельзя использовать для корневого домена (apex) - Не знают о DNS-кэше браузера —
chrome://net-internals/#dnsдля очистки - Хардкодят IP вместо домена — IP меняется при смене хостинга