Вопрос с собеседования · Основы

Что происходит, когда вы вводите адрес сайта в браузере и нажимаете Enter?

JuniorСети
Ещё спрашивают так:
  • Опишите путь HTTP-запроса от браузера до сервера и обратно.
  • Где тратится время при загрузке страницы?
Коротко

DNS находит IP → TCP-рукопожатие → TLS-рукопожатие → HTTP-запрос → сервер (балансировщик, приложение, база) → ответ → браузер разбирает HTML, догружает ресурсы и рисует страницу.

  • Каждый шаг — минимум один оборот по сети, поэтому важны кэш DNS, keep-alive, CDN
  • На сервере: балансировщик → веб-сервер → приложение → кэш и база
  • В браузере: парсинг HTML, CSS и JS, построение DOM, раскладка, отрисовка

А ещё Глубину выбирают по вакансии: бэкенд — про сервер, фронтенд — про рендеринг

Подробно

Вопрос открытый: интервьюер смотрит, насколько глубоко и связно вы знаете путь запроса. Хороший ответ — общая цепочка, затем подробнее в своей области.

1. Разбор адреса. Браузер понимает, что это URL, а не поисковый запрос, проверяет HSTS-список (сразу HTTPS) и кэш.

2. DNS. Кэш браузера, ОС, затем рекурсивный резолвер; при промахе — цепочка корень → зона → авторитетный сервер. Получаем IP.

3. TCP. Тройное рукопожатие с сервером на порт 443 — один RTT. Если соединение с этим хостом уже есть, оно переиспользуется.

4. TLS. Согласование ключа и проверка сертификата — ещё один RTT в TLS 1.3. С HTTP/3 шаги 3 и 4 объединены в QUIC.

5. HTTP-запрос. GET / с заголовками Host, cookies, Accept-Encoding.

6. Путь по инфраструктуре: CDN (может ответить сам из кэша) → балансировщик → обратный прокси (nginx, ingress) → экземпляр приложения → кэш (Redis), база данных, другие сервисы → ответ обратно. Здесь можно рассказать про пулы соединений, кэширование и таймауты.

7. Ответ. Статус, заголовки (Content-Type, Cache-Control, Set-Cookie), тело, обычно сжатое gzip или brotli.

8. Браузер. Разбирает HTML в DOM, встречает CSS и скрипты — грузит их (параллельно, по тем же шагам, но соединение уже есть), строит CSSOM, выполняет JS (синхронные скрипты блокируют разбор, поэтому defer и async), считает раскладку (layout), рисует (paint) и компонует слои.

Где время. Сетевые обороты на мобильной сети — по 50–150 мс каждый, поэтому холодный заход может занять секунду до первого байта. Ускоряют: CDN ближе к пользователю, keep-alive и HTTP/2–3, кэширование статики, предзагрузка (preconnect, dns-prefetch), сжатие.

Пример

$ curl -o /dev/null -s -w "dns %{time_namelookup}  tcp %{time_connect}  tls %{time_appconnect}  ttfb %{time_starttransfer}  total %{time_total}\n" https://example.com
dns 0.012  tcp 0.043  tls 0.081  ttfb 0.154  total 0.155

Что хотят услышать

  • Связная цепочка: DNS → TCP → TLS → HTTP → сервер → ответ → рендеринг.
  • Кэширование на каждом шаге и переиспользование соединений.
  • Что происходит на стороне сервера — для бэкенда.
  • Где тратится время и как ускорить.

Частые ошибки

  • Пропустить DNS или TLS.
  • Уходить в одну деталь на десять минут, не нарисовав всю картину.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Браузер сразу отправляет HTTP-запрос по имени без DNS
  • ✗TLS-рукопожатие → DNS → HTTP-запрос → TCP-соединение → ответ; страница рисуется до получения ответа сервера по кэшу браузера
  • ✓DNS → TCP-рукопожатие → TLS → HTTP-запрос → сервер → ответ → разбор HTML, загрузка ресурсов и отрисовка
  • ✗Страница рисуется до получения ответа сервера

Что спросят дальше

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования