Что происходит, когда вы вводите адрес сайта и жмёте Enter
Основы3 минРедакция Innovialabs
Коротко
Браузер находит IP через DNS, устанавливает защищённое соединение (TCP + TLS), отправляет HTTP-запрос, получает HTML, догружает CSS, JS и картинки, а затем строит и рисует страницу.
Короткий ответ: шесть этапов за доли секунды
После нажатия Enter браузер проходит цепочку шагов:
- Разбирает адрес и проверяет кэш.
- DNS — узнаёт IP-адрес сервера по имени домена.
- TCP — устанавливает соединение с сервером.
- TLS — договаривается о шифровании (для HTTPS).
- HTTP — отправляет запрос и получает ответ.
- Рендеринг — превращает HTML, CSS и JavaScript в пиксели на экране.
Каждый этап занимает время, и понимание цепочки помогает искать, почему сайт грузится медленно.
Шаг 1. Разбор адреса и кэш
Браузер решает, что вы ввели: адрес или поисковый запрос. Если адрес — он проверяет, нет ли нужных данных в кэше: сохранённой страницы, файлов или уже известного IP. Если есть и они актуальны, часть следующих шагов пропускается.
Шаг 2. DNS: поиск IP-адреса
Компьютеры общаются по IP-адресам, а не по именам. Браузер спрашивает DNS-резолвер (обычно у провайдера или публичный), какой IP у домена. Если резолвер не знает ответа, он по цепочке опрашивает корневые серверы, серверы доменной зоны (например, .uz или .com) и наконец авторитетный сервер вашего домена.
Ответ кэшируется на время, указанное в записи (TTL), поэтому повторные визиты быстрее.
Шаг 3–4. TCP и TLS: соединение и шифрование
- TCP-рукопожатие — клиент и сервер обмениваются служебными пакетами и подтверждают, что готовы к передаче данных.
- TLS-рукопожатие — сервер предъявляет сертификат, браузер проверяет, что он выдан доверенным центром и подходит для этого домена. Затем стороны согласуют ключи шифрования.
Если сертификат просрочен или не совпадает с доменом, браузер покажет предупреждение и не откроет страницу без вашего согласия. Новые версии протоколов (HTTP/2, HTTP/3) сокращают число таких обменов и позволяют передавать много файлов по одному соединению.
Шаг 5. HTTP-запрос и ответ сервера
Браузер отправляет запрос вида:
GET / HTTP/1.1
Host: example.com
Accept: text/html
Сервер (часто через CDN и обратный прокси вроде nginx) передаёт запрос приложению. Приложение может сходить в базу данных, собрать страницу и вернуть ответ с кодом статуса (200, 301, 404, 500) и HTML в теле.
На этом этапе важна скорость ответа сервера — TTFB (время до первого байта). Медленные запросы к базе или отсутствие кэша на сервере сказываются здесь.
Шаг 6. Разбор и отрисовка страницы
Получив HTML, браузер:
- Строит DOM — дерево элементов страницы.
- Находит ресурсы — CSS, JavaScript, шрифты, картинки — и запрашивает их.
- Строит CSSOM — модель стилей. Пока CSS не загружен, браузер обычно не рисует контент, чтобы не показать «голую» страницу.
- Выполняет JavaScript. Обычный
<script>останавливает разбор HTML, поэтому скрипты подключают сdeferилиasync. - Layout — рассчитывает размеры и позиции элементов.
- Paint и composite — рисует пиксели и собирает слои на экране.
После этого страница видна, но JavaScript может продолжать догружать данные и делать её интерактивной.
Где чаще всего теряется скорость
| Этап | Типичная причина задержки |
|---|---|
| DNS | Медленный DNS-провайдер, маленький TTL |
| TCP/TLS | Сервер далеко от пользователя, нет CDN |
| Ответ сервера | Тяжёлые запросы к базе, нет кэширования |
| Загрузка ресурсов | Большие картинки, лишние скрипты и шрифты |
| Рендеринг | Блокирующий JavaScript, сложная вёрстка |