🎯 Зачем спрашивают
- Проверить базовое понимание сетевого стека (DNS → TCP → TLS → HTTP → HTML).
- Убедиться, что кандидат видит связь между фронтендом и браузером/сетевой частью, а не мыслит только «React/Vue/Angular ».
- Важный маркер инженерной зрелости: понимает ли кандидат, что браузер — это не магия, а последовательность протоколов и шагов.
- Помогает отличить «верстальщика» от инженера, который может участвовать в обсуждении архитектуры и перформанса.
📝 Ответ
# Получить IP
Браузеру требуется получить IP адрес, на который необходимо сделать HTTP запрос, то есть замаппить доменное имя сайта на IP адрес. Это делается потому, что сервера, общаясь друг с другом, использую IP, а доменное имя — для удобства людей.
Сперва браузер поищет в локальном кэше*. Если его там не будет, то обратится к DNS.
Проверка локально кэша состоит из
- проверка браузерного DNS-кэша
- проверка системного кэша (OS resolver cache),
- hosts-файл,
- запрос к локальному DNS-серверу (обычно провайдер или
8.8.8.8/1.1.1.1),
- затем рекурсивные запросы (root → TLD → authoritative).
# Делаем запрос
Устанавливается TCP-соединения (3-way handshake). Если используется HTTPS, то происходит TLS Handshake (обмен сертификатами, ключами). Далее браузер делает HTTP запрос к серверу по полученному IP. Если все ок и сервер вернул нам HTML, то начинается процесс парсинга.
⚖️ Компромиссы
🔎 Встречные вопросы
- Что такое HTTPS? Какую проблему решает?
- Что такое TCP?
- Что такое UPD?
- В чем отличие TCP и UDP ?
🚩 Красные флаги
- Браузер сразу делает HTTP-запрос (без TCP/TLS).
- Полное игнорирование DNS кэшей.
- Называть HTTPS просто «шифрованным HTTP» без понимания TLS.
- Смешивание этапов (например, говорить про DOM ещё до получения HTML).
- «Браузер делает запрос» вместо «Браузер делает HTTP запрос»