- После ввода значения в адресную строку и нажатия клавиши
Enter
происходит электрический импульс и распознание нажатой клавиши, браузер понимает это и получает информацию об URL, делает он это так:-
Используя протокол
HTTP
браузер проверяет список HSTSHTTP Strict Transport Security
. Это список сайтов, к которым нужно обращаться только поHTTPS
. Если сайт в списке, то браузер отправляет запрос через HTTPS. Иначе – черезHTTP
. -
Браузер проверяет имя хоста на наличие символов, отличных от
a-z
,A-Z
,0-9
,-
, или.
. (Если отличные символы есть, то будет применяться другая кодировка). -
Для того, чтобы браузер мог понять какой
IP-адрес
соответствует доменному имени происходит процессDNS Lookup
. Браузер смотрит у себя вcache
или в файлеhost
есть ли для данного доменного имениIP-адрес
, если нет, то обращается к серверу роутера -> провайдера -> корневого сервера -> сервер ответственный за зону (например,com
) ->name server Google
. Таким образом, мы узнаемIP-адрес
сервера, к которому мы хотим подключиться. -
Когда браузер получает
IP-адрес
конечного сервера, то он берёт эту информацию и данные об используемом порте изURL
(80 порт для HTTP, 443 для HTTPS) и осуществляет вызов функцииsocket
системной библиотеки и запрашивает потокTCP
сокета —AF_INET
иSOCK_STREAM
. На этой точке пакет готов к передаче через:- Ethernet
- WiFi
- По сотовой связи В конечном итоге пакет доберётся до маршрутизатора, управляющего локальной подсетью. Затем он продолжит путешествовать от одного роутера к другому, пока не доберётся до сервера назначения.
-
Клиент отправляет сообщение серверу со своей версией протокола
TLS
. Сервер отвечает своейTLS
, методом шифрования и др.. Клиент подтверждает сертификат сервера с помощью своего списка центров сертификации. Если сертификат подписан центром из списка, то серверу можно доверять. -
Отправляется
HTTP-запрос
. Принимается ответ. -
Движок рендеринга начинает получать содержимое запрашиваемого документа от сетевого механизма браузера. Как правило, контент поступает кусками по 8Кб. Главной задачей HTML-парсера является разбор разметки в специальное дерево.
Получающееся на выходе дерево («parse tree») — это дерево DOM-элементов и узлов атрибутов.
-
Происходит интерпретация CSS-стилей.
-
Создаётся Render Tree, геометрия, layout и т.д.
-