DNS, TCP, TLS

↑ 1.1 Как работает веб и браузер · → Следующая

Желательно~3 мин чтенияУровень: junior

Зачем это на собесе

Базовый вопрос «что происходит, когда вы открываете сайт» начинается с DNS, TCP и TLS. Нужно уметь объяснить каждый шаг и его стоимость.

Объяснение

Перед первым HTTP-запросом браузер устанавливает соединение:

ШагЧто делаетСтоимость
DNSпревращает имя example.com в IP-адрес (кэш браузера → ОС → рекурсивный резолвер → корневые/TLD/авторитативные серверы)1 RTT и больше без кэша
TCP (3-way handshake)SYN → SYN-ACK → ACK, надёжное упорядоченное соединение1 RTT
TLS 1.3согласование шифров и ключей, проверка сертификата1 RTT (0-RTT при возобновлении)
HTTP-запроссам запрос и ответ1 RTT + время сервера
sequenceDiagram
  participant B as Браузер
  participant D as DNS
  participant S as Сервер
  B->>D: example.com?
  D-->>B: 93.184.216.34
  B->>S: SYN
  S-->>B: SYN-ACK
  B->>S: ACK + ClientHello
  S-->>B: ServerHello + сертификат
  B->>S: HTTP GET /

Ускорение: dns-prefetch, preconnect, keep-alive и HTTP/2 (одно соединение на много запросов), HTTP/3 (QUIC поверх UDP: нет head-of-line blocking на уровне транспорта, быстрее установка).

<link rel="preconnect" href="https://cdn.example.com" crossorigin>
<link rel="dns-prefetch" href="https://api.example.com">

Нюансы и подводные камни

  • Каждый новый домен — новый DNS + TCP + TLS: не дробите ресурсы на десятки доменов.
  • DNS-кэш определяется TTL записи; смена IP не мгновенна.
  • HTTPS обязателен: без него недоступны Service Worker, Geolocation и др.
  • Сертификат проверяется по цепочке доверия и SAN; ошибка → предупреждение браузера.
  • HSTS заставляет браузер использовать только HTTPS.

Практика

  1. Откройте DevTools → Network → Timing и найдите DNS, Connect, SSL.
  2. Добавьте preconnect к API-домену и сравните время первого запроса.
  3. Проверьте сертификат сайта (замок → сведения) и цепочку доверия.

Вопросы с ответами

Связанные темы