Проверяет понимание полного цикла сетевого запроса от ввода URL до отрисовки страницы, включая DNS, TCP, HTTP и рендеринг.
Когда вы вводите адрес сайта в браузере, происходит цепочка событий, которая включает сетевые протоколы, серверную обработку и клиентский рендеринг. Понимание этого процесса помогает диагностировать проблемы с производительностью и сетью.
Браузер сначала проверяет локальный кэш DNS, затем системный кэш и файл hosts. Если IP не найден, отправляется DNS-запрос к рекурсивному резолверу (обычно вашему провайдеру), который ищет запись A или AAAA для домена. Например, для example.com резолвер может вернуть 93.184.216.34.
Браузер инициирует TCP-соединение с полученным IP-адресом через тройное рукопожатие: SYN, SYN-ACK, ACK. Это гарантирует надёжную передачу данных. Если используется HTTPS, после TCP выполняется TLS-рукопожатие для шифрования.
Браузер отправляет HTTP-запрос (например, GET /) с заголовками, такими как User-Agent и Accept. Сервер обрабатывает запрос и возвращает ответ с кодом статуса (200 OK), заголовками и телом — обычно HTML-документом. Пример запроса:
GET / HTTP/1.1
Host: example.com
Accept: text/htmlБраузер получает HTML и начинает парсинг, строя DOM-дерево. Параллельно загружаются CSS и JavaScript. CSS формирует CSSOM, а JS может изменять DOM. Затем браузер строит дерево рендеринга, вычисляет layout (раскладку) и paint (отрисовку). Современные браузеры используют GPU для ускорения.
Этот процесс объединяет сетевые протоколы и клиентские технологии. Знание этапов помогает оптимизировать загрузку (например, кэширование DNS, использование CDN, минификация ресурсов) и устранять узкие места в производительности.