Как работает браузер: от запроса до отрисовки страницы

Браузер — программа для просмотра веб-страниц.

От запроса к отрисовке страницы

Представьте, вы открыли видео на YouTube. Браузер отправляет запрос по ссылке, используя протокол HTTP или HTTPS. HTTP — небезопасный протокол; HTTPS — безопасный, благодаря шифрованию.

Запрос отправляется на DNS-сервер. DNS-сервер преобразует доменное имя (например, youtube.com) в IP-адрес (например, 216.239.32.0). IP-адрес — это адрес сервера.

Сигнал поступает на сервер. Веб-сервер (например, NGINX) обрабатывает запрос, обращается к базе данных, находит видео и формирует ответ. Ответ содержит код страницы (HTML, CSS, JavaScript), видео, изображения и текст.

Браузер выполняет две основные функции:

  1. Отправку запросов и получение ответов.
  2. Отрисовку (рендеринг) полученных страниц.

Браузер преобразует код в интерактивную страницу. Без этого мы бы видели только исходный код.

Код страницы состоит из:

  • HTML: добавляет элементы на страницу (заголовки, списки, текст, видео, изображения).
  • CSS: задаёт стиль элементов (цвет, расположение и т.д.).
  • JavaScript: делает страницу интерактивной (реакция на нажатия кнопок и т.д.).

Браузер также загружает изображения, шрифты и другие ресурсы.

Функции современных браузеров

Современные браузеры предлагают множество функций:

  • Кнопки «Назад», «Вперед», «Домой».
  • Вкладки.
  • Сохранение вкладок.
  • Хранение информации (куки, локальное хранилище, кэш).
  • Расширения.

Куки — небольшие файлы, создаваемые сайтами для отслеживания действий пользователя.

Локальное хранилище — механизм для хранения данных на устройстве пользователя даже после закрытия браузера. Доступно только одному сайту.

Кэш — временное хранилище информации (изображения, видео, стили и т.д.) для ускорения доступа к часто запрашиваемой информации.

Расширения — дополнения, расширяющие функциональность (блокировщики рекламы и т.д.).

Движки браузеров и веб-приложения

В основе браузеров лежит движок — код, преобразующий код и файлы от сервера в страницу. Распространённые движки:

  • Blink: Google Chrome, Opera, Brave, Яндекс Браузер, Microsoft Edge.
  • WebKit: Safari.
  • Gecko (и Quantum): Firefox.

Современные браузеры позволяют запускать веб-приложения — приложения, написанные с использованием веб-технологий (HTML, CSS, JavaScript) и запускаемые внутри браузера (например, Discord, Visual Studio Code). Часто используется Electron для создания кроссплатформенных приложений.

Инструменты разработчика (DevTools)

Инструменты разработчика позволяют:

  • Просматривать исходный код страницы.
  • Отправлять команды.
  • Просматривать запросы.
  • Отлаживать код.
  • Эмулировать открытие сайта на разных устройствах.

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

Что будем искать? Например,программа