Имя, конверт и полсекунды до страницы
Спуститесь по иерархии имён, проведите рукопожатие TLS по шагам и разберите, из чего складывается время между Enter и картинкой на экране.
// имя читается справа налево
Браузер умеет соединяться только с числами, поэтому имя сначала надо превратить в адрес. Вопрос спускается по уровням, пока кто-нибудь не ответит. Выберите запрос и открывайте шаги: счётчик справа показывает, во сколько шагов обошёлся каждый.
-
Кэш браузера
Браузер проверяет, не спрашивал ли он это имя недавно.
-
Кэш системы и файл hosts
Операционная система хранит свои ответы и локальные записи.
-
Рекурсивный резолвер
Сервер провайдера или публичный, вроде 8.8.8.8. Он и ведёт весь спуск.
-
Корневой сервер
Тринадцать адресов, за каждым сотни машин по технологии Anycast.
-
Сервер зоны .by
Домен верхнего уровня: знает, кто отвечает за имена внутри зоны.
-
Авторитативный сервер
Сервер владельца домена. Именно он хранит настоящий ответ.
Ни у кого ещё нет ответа: вопрос идёт сверху донизу.
-
Кэш браузера в кэше нет
Браузер смотрит свой кэш: этого имени там нет
-
Кэш системы и файл hosts в кэше нет
Система смотрит свой кэш и файл hosts: тоже пусто
-
Рекурсивный резолвер спросили
Запрос уходит рекурсивному резолверу - дальше он ведёт спуск сам
-
Корневой сервер спросили
Резолвер спрашивает у корневого сервера, кто знает зону .by
-
Сервер зоны .by спросили
Корневой отправляет к серверу зоны .by, тот называет авторитативный сервер any.by
-
Авторитативный сервер спросили
Авторитативный сервер выдаёт адрес: 104.21.48.175
Полный спуск: 6 шагов. Каждый уровень знает только следующий, а не весь путь. Резолвер запомнит ответ на время, указанное в записи TTL - для большинства сайтов это несколько часов или дней.
То же имя, тот же браузер, тот же день.
-
Кэш браузера ответ из кэша
Ответ лежит в кэше браузера: 104.21.48.175, спрашивать больше некого
Один шаг вместо шести. Именно поэтому вся цепочка в реальности занимает несколько миллисекунд, а при повторном обращении - меньше миллисекунды.
Имя другое, но зона та же самая.
-
Кэш браузера в кэше нет
Этого имени браузер не спрашивал
-
Кэш системы и файл hosts в кэше нет
В кэше системы его тоже нет
-
Рекурсивный резолвер спросили
Резолвер берётся за дело, но начинать сверху ему не нужно
-
Сервер зоны .by спросили
Он помнит, кто отвечает за зону .by, и идёт сразу туда
-
Авторитативный сервер спросили
Авторитативный сервер any.by отвечает про поддомен
Корневой сервер спрашивать не пришлось: шагов вышло 5 вместо шести. Кэш хранит не только адреса, но и то, кто за какую зону отвечает.
Модель условная: шаги укрупнены, а сроки хранения в кэше у каждого уровня свои и зависят от TTL записи. В жизни резолвер держит ответы и о зонах, и об именах, поэтому короткий путь бывает разной длины, а иногда ответ находится ещё и в кэше на промежуточном узле. Сам DNS-запрос по умолчанию идёт открытым текстом: чтобы его скрыть, придуманы DoH и DoT.
Как браузер и сервер договариваются о шифре
HTTPS - это тот же HTTP, только в конверте. Конверт нужно сначала изготовить: договориться об алгоритме, проверить, что сервер настоящий, и получить общий ключ, ни разу не передав его по сети. Идите по шагам.
-
01
Client Hello: браузер представляется
Браузер отправляет список алгоритмов шифрования, которые умеет, и случайное число. Никаких секретов здесь ещё нет - это открытый разговор, и подслушать его можно целиком.
! Что ещё нельзя Шифрования пока нет вовсе: всё идёт открытым текстом.
Что при этом передаётся Список шифров и случайное число от браузера.
-
02
Server Hello: сервер выбирает и показывает сертификат
Сервер называет выбранный алгоритм, своё случайное число и предъявляет сертификат - документ, где написано, какому домену он выдан, кем и до какого числа.
! Что ещё нельзя Верить сертификату на слово пока нельзя - его ещё не проверяли.
Что при этом передаётся Выбранный шифр, случайное число сервера и сертификат.
-
03
Проверка сертификата
Браузер сверяет подпись удостоверяющего центра, срок действия и соответствие домена. Не сошлось хоть что-то - предупреждение на весь экран, и дальше человек решает сам.
! Что ещё нельзя Сертификат подтверждает, что сервер тот, за кого себя выдаёт, - но ничего не говорит о том, честный ли это сайт.
Что при этом передаётся Подпись центра, даты и имя домена.
-
04
Обмен ключами
Стороны обмениваются открытыми данными и каждый смешивает их со своим секретом, который никогда не покидает машину. На обоих концах получается один и тот же общий ключ - хотя сам ключ по проводам не шёл ни разу.
! Что ещё нельзя Записавший весь разговор ключ из него не соберёт - в этом весь смысл.
Что при этом передаётся Только открытые части: секреты остаются каждый у себя.
-
05
Finished: переходим на симметричный шифр
Обе стороны подтверждают, что рукопожатие прошло, и дальше говорят уже общим ключом. С этого момента и заголовки, и адрес страницы, и данные формы видны только двоим.
! Что ещё нельзя Снаружи всё равно видно, к какому домену вы подключились, - имя сайта скрыть шифрованием не получится.
Что при этом передаётся Подтверждение с двух сторон.
Дальше весь обмен идёт симметричным шифром - он в разы быстрее асимметричного. Асимметричный работал только на этапе договора о ключе: это гибридная схема, надёжность одного плюс скорость другого. И заметьте, сколько времени всё это заняло: одно-два обращения туда-обратно, то есть от двадцати до двухсот миллисекунд ещё до первого байта самой страницы.
Шаги - из таблицы рукопожатия в статье. Современный TLS 1.3 укладывает это в одно обращение туда-обратно вместо двух, а при повторном подключении умеет обходиться и без него.
Из чего складывается время между Enter и картинкой
Половина этого времени уходит не на вычисления, а на дорогу туда и обратно. Переключайте расстояние до сервера, версию протокола и состояние кэша - и смотрите, какой этап съедает больше всех. Жёлтым отмечен самый дорогой.
Имени в кэше нет: браузер спрашивает у резолвера, тот при необходимости обходит корневые и авторитативные серверы. Это ещё одно обращение по сети до того, как начнётся само соединение.
-
Разрешение имени
Пока адрес неизвестен, соединяться не с чем. Один запрос к резолверу - это одна дорога туда и обратно, а при холодном кэше их бывает несколько.
-
Соединение TCP
Тройное рукопожатие: SYN, SYN-ACK, ACK. Занимает ровно одну дорогу туда и обратно, сколько бы ни было мегабит в канале.
-
Рукопожатие TLS
Ещё одна дорога: обмен приветствиями, сертификат, договор о ключе. У старых версий - две. У HTTP/3 соединение и шифрование совмещены, поэтому этот этап почти исчезает.
-
Накладные расходы протокола
Сорок миллисекунд - это HTTP/1.1: запросы стоят в очереди, и потерянный пакет держит остальные. Пятнадцать - HTTP/2 с параллельными запросами в одном соединении. Пять - HTTP/3 поверх QUIC, где соединение и шифрование совмещены, а потеря одного пакета не тормозит остальные.
-
Работа сервера
Веб-сервер читает запрос, тянет данные из базы, собирает страницу. От десяти миллисекунд до полусекунды - это единственный этап, который не зависит от расстояния.
-
Разбор и отрисовка
Браузер разбирает разметку, применяет стили, выполняет скрипты и рисует картинку. Дальше он находит ссылки на файлы и запрашивает их параллельно - это уже поверх того, что показано здесь.
Так открываются сайты, у которых сервер или ближайший узел сети доставки в вашем городе. Ровно за это и держат CDN - копии страниц в десятках городов сразу.
Полсекунды - типичная цифра. Посмотрите, какой этап подсвечен: чаще всего это не сервер, а дорога туда-обратно, помноженная на число обращений.
Сервер на другом континенте плюс лишние обращения. Ускорять тут надо не сервер, а число дорог: кэш имён, HTTP/3, ближний узел доставки.
Времена этапов - из таблицы «полный путь» в статье: одна дорога туда-обратно 10-100 мс, работа сервера 10-500 мс, отрисовка 10-200 мс. Переключатель дороги задаёт её в миллисекундах, версия протокола показана числом обращений: HTTP/1.1, HTTP/2 и HTTP/3.
Интерактив разработан ANY.BY - ремонт компьютеров и ноутбуков в Барановичах. © 2008-2026. Источник: any.by/demo/lestnica-dns