В адресной строке набрано имя сайта. Кажется, что браузеру остаётся «скачать страницу». На деле он должен понять адрес, найти сервер, договориться о защищённом соединении, получить байты, проверить политики и только потом собрать изображение на экране.

Полезно держать эту цепочку в голове не ради собеседования. Она помогает локализовать задержки: медленный DNS и тяжёлая таблица стилей ощущаются одинаково — страница не появилась, — но лечатся совершенно по-разному.

1. Браузер разбирает адрес

Сначала строка превращается в URL: схема, имя хоста, порт, путь, параметры и фрагмент. Схема задаёт правила дальнейшего разговора. Для HTTPS стандартный порт — 443, поэтому обычно он не виден.

До сети браузер проверяет локальные возможности: нет ли подходящего ответа в HTTP-кеше, активного соединения с тем же origin или правила, которое заставляет перейти с HTTP на HTTPS. Иногда запрос заканчивается, так и не покинув устройство.

2. DNS находит адрес сервера

Сети нужен IP-адрес, а человеку удобно имя. Резолвер ищет соответствие в кешах браузера и операционной системы, затем обращается к настроенному DNS-серверу. Тот при необходимости проходит иерархию: корневые серверы, зона верхнего уровня и авторитетный сервер домена.

Важная оговоркаDNS не обязательно возвращает «адрес сервера». Часто это адрес ближайшего узла CDN или балансировщика, выбранный с учётом сети и географии клиента.

3. Создаётся соединение

Для HTTP/1.1 и HTTP/2 обычно устанавливается TCP-соединение. Его рукопожатие подтверждает, что обе стороны доступны и согласовали начальные номера последовательности. Потери пакетов будут обнаружены, а порядок байтов — восстановлен.

Затем начинается TLS. Сервер присылает сертификат и доказывает владение ключом. Клиент проверяет имя домена, срок действия и цепочку доверия, после чего стороны получают общие симметричные ключи. Идентичность подтверждается асимметричной криптографией, а основной трафик шифруется более дешёвой симметричной.

HTTP/3 строится поверх QUIC и объединяет транспорт с криптографическим рукопожатием. Это меняет механику, но не цель: получить надёжный защищённый канал с минимальным числом круговых поездок.

4. HTTP формулирует запрос

Браузер отправляет метод, путь и заголовки. Среди них есть имя хоста, поддерживаемые форматы, язык, данные кеша и cookie, подходящие этому адресу. Тело у обычного GET-запроса чаще всего отсутствует.

GET /articles/network.html HTTP/1.1
Host: example.test
Accept: text/html
Accept-Encoding: gzip, br
If-None-Match: "v42"

Запрос может пройти через CDN, защитный фильтр, обратный прокси и балансировщик. Каждый слой либо отвечает сам, либо выбирает следующий узел. Если кеш валиден, origin-приложение вообще не участвует.

5. Приложение собирает ответ

На сервере маршрут связывается с обработчиком. Тот проверяет доступ, читает данные, применяет бизнес-правила и формирует ответ. Здесь и скрывается большая часть привычной серверной работы, но с точки зрения браузера важны статус, заголовки и поток байтов.

200 приносит содержимое, 304 разрешает использовать кеш, 301 или 302 запускают новый переход. Заголовки управляют кешированием, безопасностью и интерпретацией тела.

6. Браузер строит страницу

HTML разбирается в дерево документа. Встречая таблицу стилей, браузер загружает её и строит модель CSS. Два дерева объединяются в структуру рендеринга; затем движок вычисляет размеры и положение элементов, рисует слои и композитит их на экран.

Процессы частично перекрываются. HTML может приходить потоком, дополнительные ресурсы запрашиваются ещё до завершения разбора, а содержимое появляется до полной загрузки страницы. Поэтому порядок ресурсов и объём критического CSS заметно влияют на ощущение скорости.

«Сайт тормозит» — не диагноз. Нужна граница: имя, соединение, первый байт, ресурсы, раскладка или отрисовка.

Как пользоваться этой моделью

Смотрите на временную шкалу запроса и задавайте вопрос по порядку. Долго ищется адрес? Проверяйте DNS. Велико время до первого байта? Ищите сеть, очередь или сервер. Ответ пришёл быстро, а экран пуст? Изучайте блокирующие стили, шрифты и работу рендеринга.

Реальная сеть сложнее этой схемы: соединения переиспользуются, протоколы конкурируют, кеши имеют много уровней. Но шесть границ уже дают карту. А карта превращает магическое «Enter — и страница» в систему, которую можно измерять.