Начальный ~20 мин чтения

Что происходит, когда вы открываете сайт

Урок 2 из 4 в курсе Как работает интернет

Что происходит, когда вы открываете сайт

между вводом адреса и появлением страницы происходит цепочка сетевых и серверных действий.

Почему это важно: Многие проблемы в вебе выглядят как 'сайт тормозит' или 'ничего не открывается'. Чтобы понимать, где искать причину, нужно видеть всю цепочку целиком, а не только код в контроллере.

Главная идея

Открытие сайта - это не одно действие, а последовательность шагов: поиск адреса, соединение, запрос ресурса и отрисовка ответа.

Как это выглядит на практике

  1. Пользователь вводит URL в браузере.
  2. Браузер выясняет, на какой IP-адрес нужно отправить запрос.
  3. Устанавливается соединение с сервером.
  4. Браузер отправляет HTTP-запрос за HTML-страницей.
  5. Сервер возвращает HTML, а браузер затем может запрашивать CSS, JavaScript и изображения отдельно.

Что происходит под капотом

  • Перед первым HTTP-запросом браузер должен понять, куда обращаться: обычно для этого нужен DNS lookup.
  • Затем поднимается транспортное соединение, а при HTTPS ещё и TLS-рукопожатие, которое добавляет отдельную фазу обмена данными.
  • HTML-страница редко является единственным ресурсом: браузер анализирует документ и параллельно запрашивает стили, скрипты, шрифты, картинки и API-данные.
  • Если на каком-то этапе происходит сбой, пользователь видит один и тот же симптом — страница не загрузилась, хотя причина может быть совершенно разной.

Типичные ошибки и заблуждения

  • Ошибка: сайт открывается одним запросом. На практике это часто десятки запросов.
  • Ошибка: если HTML отдался быстро, значит всё работает быстро. Медленные скрипты, изображения и API могут испортить итоговую загрузку.
  • Ошибка: backend отвечает только за серверное время ответа. На реальную скорость сильно влияют DNS, TLS, сеть и кэш.
  • Ошибка: проблема обязательно в приложении. Иногда корень в CDN, reverse proxy, сертификате или внешнем DNS.

Ключевые выводы

  • Даже одна страница обычно приводит к нескольким сетевым запросам.
  • На скорость влияет не только backend, но и DNS, сеть, TLS и размер ресурсов.
  • Понимание цепочки помогает искать узкие места при медленной загрузке.
  • Разные этапы открытия сайта принадлежат разным уровням системы: браузеру, сети, инфраструктуре и приложению.

Термины урока

URL: адрес ресурса в интернете.
DNS lookup: этап поиска IP-адреса по доменному имени.
TCP connection: сетевое соединение между клиентом и сервером.
Response rendering: этап, когда браузер превращает ответ в интерфейс.

Связь с работой backend-разработчика

Когда пользователь жалуется, что сайт медленный, проблема может быть не только в контроллере или SQL. Backend-разработчик должен понимать всю цепочку от браузера до ответа сервера.

Мини-разбор реальной ситуации

Пользователь жалуется, что главная страница открывается 4 секунды. Логи приложения показывают, что контроллер ответил за 120 мс. Значит, узкое место надо искать дальше: возможно, медленный DNS, тяжёлый JavaScript, медленные внешние API или долгое TLS-рукопожатие.

Что запомнить

  • Открытие сайта — это последовательность из нескольких этапов, а не одно действие.
  • Плохая скорость страницы не всегда означает медленный backend-код.
  • Хорошая диагностика начинается с понимания полного пути запроса.

Итог

Хороший backend-инженер видит не только код обработчика, но и путь запроса целиком: это помогает лучше проектировать API и быстрее диагностировать проблемы.