Что происходит при вводе URL
↑ 1.1 Как работает веб и браузер · ← Предыдущая
Зачем это на собесе
Классический вопрос, объединяющий сеть, браузер и рендеринг. Хороший ответ — структурный, с глубиной по запросу.
Объяснение
- Разбор URL: схема, хост, порт, путь, запрос, фрагмент. Проверка HSTS, кэша,
service worker. - DNS-разрешение имени в IP (см. DNS, TCP, TLS).
- TCP + TLS — соединение и шифрование.
- HTTP-запрос на сервер; возможно через CDN, балансировщик, reverse proxy.
- Ответ: код, заголовки, HTML. Возможны редиректы.
- Парсинг HTML → DOM. Встречаемые
<link rel=stylesheet>блокируют рендер,<script>блокирует парсер (если неasync/defer/module). - CSSOM строится из CSS.
- Render tree = DOM + CSSOM (без
display: none). - Layout (reflow) — расчёт размеров и позиций.
- Paint — отрисовка в слои; Composite — GPU объединяет слои (
transform,opacityне вызывают layout). - Выполнение JS, события
DOMContentLoaded,load; последующие запросы (API, картинки, шрифты).
flowchart LR URL --> DNS --> TCP --> TLS --> HTTP --> HTML HTML --> DOM CSS --> CSSOM DOM & CSSOM --> RT[Render tree] --> Layout --> Paint --> Composite HTML --> JS[JS выполнение] --> DOM
Метрики: TTFB, FCP, LCP, CLS, INP; критический путь рендеринга — минимальный набор ресурсов до первого кадра.
Нюансы и подводные камни
- Синхронный скрипт в
<head>блокирует парсинг и первый рендер. - Шрифты и изображения без размеров вызывают сдвиги макета (CLS).
- CSS блокирует рендеринг; JS блокирует парсинг; ресурсы фоновых запросов не блокируют.
- SPA: HTML почти пуст, контент строит JS — поздний LCP без SSR/prerender.
- Кэш и Service Worker могут ответить без сети.
Практика
- Запишите Performance-профиль загрузки страницы и найдите этапы парсинга, layout, paint.
- Найдите блокирующие ресурсы через Lighthouse.
- Расскажите ответ вслух за 2 минуты и за 5 минут.
Вопросы с ответами
Что такое critical rendering path?
Последовательность шагов от получения HTML до первой отрисовки: DOM, CSSOM, render tree, layout, paint.
Что блокирует рендеринг?
CSS блокирует рендер, синхронный JS блокирует парсинг HTML.
Чем reflow отличается от repaint?
Reflow пересчитывает геометрию, repaint — только внешний вид; reflow дороже.