Что происходит после ввода URL
Вопрос
Расскажи, что происходит после того, как пользователь ввёл адрес сайта и нажал Enter.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Разбор ввода, HSTS, проверка кешей и Service Worker
DNS: кеши браузера и ОС, рекурсивный резолвер, корень → зона → авторитетный сервер, TTL
TCP-рукопожатие и TLS 1.3 с проверкой сертификата, ALPN; на HTTP/3 QUIC поверх UDP
HTTP-запрос через CDN и балансировщик, ответ, возможные редиректы, сжатие
Парсинг HTML в DOM, CSSOM, блокирующие скрипты, async и defer
Render tree, layout, paint, composite; DOMContentLoaded и load
Что могут спросить следом
- Где на этом пути можно сэкономить время?
- Что изменится при HTTP/3?
- Почему скрипт в head без defer замедляет страницу?
Разбор
Браузер сначала понимает, что это адрес, и подставляет HTTPS; если домен в HSTS, он вообще не пойдёт по HTTP. Дальше проверяет кеш и Service Worker. Если ответа нет, нужен IP: браузер смотрит свой кеш DNS, кеш ОС, потом спрашивает рекурсивный резолвер, который при пустом кеше идёт к корневому серверу, к серверу зоны и к авторитетному серверу домена. Получив IP, браузер открывает TCP-соединение тройным рукопожатием и делает TLS 1.3: проверяет сертификат по цепочке, договаривается о ключах и через ALPN выбирает HTTP/2. На HTTP/3 то же делает QUIC поверх UDP за одно RTT. Запрос проходит CDN, балансировщик, nginx и доходит до приложения, ответ может быть редиректом или HTML. Браузер парсит HTML потоком в DOM, параллельно грузит CSS и строит CSSOM; обычный скрипт останавливает парсинг, defer и async нет. Из DOM и CSSOM получается render tree, затем layout считает геометрию, paint рисует слои, composite собирает кадр. Когда HTML разобран, срабатывает DOMContentLoaded, когда догрузились картинки, load.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Что происходит при вводе адреса»
- async и defer
- Почему CSS блокирует рендер
- DOMContentLoaded и load
- Что попадает в render tree
- Порядок DNS-резолвинга
- ALPN
- Critical rendering path
- TTL в DNS