-
Notifications
You must be signed in to change notification settings - Fork 0
/
Task6.txt
30 lines (27 loc) · 3.95 KB
/
Task6.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
вводишь в адресной строке браузера reg.ru, и через несколько секунд
видишь главную страницу сайта. Опиши текстом, что происходит между этими
событиями?
1. Браузер открывает сокет, просит у ОС выдать ему ответ URI.
2 ОС делит URI на домен и запрос, домен отправляет драйверу TCP, тот по своим каналам спрашивает опять же ОС, может она в курсе какой там айпи, у этого домена.
3 ОС смотрит в /etc/hosts, если не находит, то отдаёт драйверу отказ, сообщает, посмотри мол у этих NS-серверов, которые уже получила из resolv.conf.
4 Драйвер запрашивает роут. Если Роут к NS-серверу есть, открывает сессию, чтобы направить NS-серверу пакет с запросом на IP-адрес Рега.
5 ...... давайте упростим, либо это будет не ответ, а хабропост.
получили адрес, запросили сервер, получили версию SSL.
обменялись ключами.
Отправили регу зашифрованный запрос.
Получили зашифрованный ответ.
Расшифровываем.
Этот гад спросил, есть ли у нас на него куки.
Куки есть. Шифруем, отправляем.
Реговский нгинкс уже в деле, он ищет, есть ли закешированный ответ и нужен ли он клиенту.
Он уже прочитал отправленный клиентом пакет с браузером, осью, даже размером экрана, если есть.
Он уже знает, что экран горизонтальный и андроидскую версию не подсунет.
Клиент имеет несвежую куку, значит кешированный варинат нгинкс не даёт, предлагает новую куку и если куку приняли,
и если куку не приняли - всё равно собирает данные для отправки клиенту.
клиент начинает получать поток и расшифровывать его. Расшифрованное начинается с заголовка, там - сведения в каком формате сейчас будут данные.
Браузер начинает готовить экран для отображения, по ходу дела подгружая модули для отображения шрифтов\графики\видео.
внезапно оказывается, что один из ресурсов, которым сопровождается основной поток - это код для обработки на клиентской стороне.
Код разворачивается и если основной поток ещё не скачался, то начинается ожидание, когда станут доступны все объекты, которые должны обрабатываться этим кодом, когда от Javascript требуется подгрузть что-либо по окончании загрузки.
Ну хоть вот этот кусочек с реговского индекса: script onload="window.trackScriptLoad('/dist/manifest.f04190fd0c1aac41c439.js'
По подгрузке браузер начинает отображать данные.
Ещё один вопрос, вызывающий замешатеьство..