Что происходит, когда пользователь вводит доменное имя сайта в адресную строку? До момента рендеринга UI

🎯 Зачем спрашивают
  • Проверить базовое понимание сетевого стека (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, то начинается процесс парсинга.
 
notion image
 
⚖️ Компромиссы
 
🔎 Встречные вопросы
  • Что такое HTTPS? Какую проблему решает?
  • Что такое TCP?
  • Что такое UPD?
  • В чем отличие TCP и UDP ?
 
🚩 Красные флаги
  • Браузер сразу делает HTTP-запрос (без TCP/TLS).
  • Полное игнорирование DNS кэшей.
  • Называть HTTPS просто «шифрованным HTTP» без понимания TLS.
  • Смешивание этапов (например, говорить про DOM ещё до получения HTML).
  • «Браузер делает запрос» вместо «Браузер делает HTTP запрос»
 
🛠 Практика
 
📚 Источники / ссылки