1. После ввода значения в адресную строку и нажатия клавиши Enter происходит электрический импульс и распознание нажатой клавиши, браузер понимает это и получает информацию об URL, делает он это так:
    1. Используя протокол HTTP браузер проверяет список HSTS HTTP Strict Transport Security. Это список сайтов, к которым нужно обращаться только по HTTPS. Если сайт в списке, то браузер отправляет запрос через HTTPS. Иначе – через HTTP.

    2. Браузер проверяет имя хоста на наличие символов, отличных от a-zA-Z0-9-, или .. (Если отличные символы есть, то будет применяться другая кодировка).

    3. Для того, чтобы браузер мог понять какой IP-адрес соответствует доменному имени происходит процесс DNS Lookup. Браузер смотрит у себя в cache или в файле host есть ли для данного доменного имени IP-адрес, если нет, то обращается к серверу роутера -> провайдера -> корневого сервера -> сервер ответственный за зону (например, com) -> name server Google. Таким образом, мы узнаем IP-адрес сервера, к которому мы хотим подключиться.

    4. Когда браузер получает IP-адрес конечного сервера, то он берёт эту информацию и данные об используемом порте из URL (80 порт для HTTP, 443 для HTTPS) и осуществляет вызов функции socket системной библиотеки и запрашивает поток TCP сокета — AF_INET и SOCK_STREAM. На этой точке пакет готов к передаче через:

      • Ethernet
      • WiFi
      • По сотовой связи В конечном итоге пакет доберётся до маршрутизатора, управляющего локальной подсетью. Затем он продолжит путешествовать от одного роутера к другому, пока не доберётся до сервера назначения.
    5. Клиент отправляет сообщение серверу со своей версией протокола TLS. Сервер отвечает своей TLS, методом шифрования и др.. Клиент подтверждает сертификат сервера с помощью своего списка центров сертификации. Если сертификат подписан центром из списка, то серверу можно доверять.

    6. Отправляется HTTP-запрос. Принимается ответ.

    7. Движок рендеринга начинает получать содержимое запрашиваемого документа от сетевого механизма браузера. Как правило, контент поступает кусками по 8Кб. Главной задачей HTML-парсера является разбор разметки в специальное дерево.

      Получающееся на выходе дерево («parse tree») — это дерево DOM-элементов и узлов атрибутов.

    8. Происходит интерпретация CSS-стилей.

    9. Создаётся Render Tree, геометрия, layout и т.д.


Назад