Step 5 (S-44750)

From Stepik Wiki
Revision as of 13:10, 6 August 2017 by Admin (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/14824/step/5

Step 5 (S-44750) 1.png

[00:00 - 00:18] итак а когда мы обсуждали что происходит при выполнении запроса мы говорили что в 1 очередь происходит обращение систем днс но оно может быть в принципе хорошо закэшировано а потом происходит установление tcp соединения


[00:18 - 00:36] происходит тройное рукопожатие на это тратится время а после чего возможно запускается шифрованное соединение t last на тело с рукопожатие тоже тратятся некоторое время и после чего уже осуществляется и запрос


[00:36 - 00:52] а к чему все это приводит это приводит к тому что возрастает latency запроса то есть каждый запрос запрос требуется а какой то дополнительное время а вот эту процедуру руку пожать


[00:52 - 01:10] это приводит к тому что ваши странички просто загружаются то есть основной документ загружается загружается а вот связанные с ним документа а не загружается через некоторый промежуток времени а это очень портит ощущения от просмотра веб страниц


[01:10 - 01:26] а какой есть решение решение очевидно а нужно повторно не нужно скрывать и соединения то есть из присоединения можно использовать в соединениях фтора работает поверх него для передачи нескольких запросов ответов подряд


[01:26 - 01:41] собсна говоря это и было реализовано в протоколе http 1 1 по управлению соединением а мы видели как выглядит картина для протокола http 1 0


Step 5 (S-44750) 2.png

[01:41 - 01:59] tcp по верхнего слоя поверх него в степи в котором делается 1 запроса голове а теперь 1 1 в пределах 1 и соединения опционально тела соединения может быть осуществлено несколько запросов


[01:59 - 02:14] а каким образом это реализовано а во 1 нужно подумать про совместимость протоколов протокол 6 5 1 0 а предполагал закрытие соединения


[02:14 - 02:31] то есть если у нас есть сервер либо клиент который работает портить 5 0 а он закроет соединение в любом случае то есть в клиент закроет клиент версии 1 0 закрой соединения как только он получил ответ от сервера


[02:31 - 02:49] а сервера если он работает по протоколу http 1 0 закроется денег как только он от ответ отправил а это логика работала долгое время ее нужно как то сохранить а какое решение было принято


Step 5 (S-44750) 3.png

[02:49 - 03:04] решение было принято следующее протокол 5 0 а по прежнему а предполагает закрытый протокол http 1 1 предполагает умолчанию открыто соединить


[03:04 - 03:20] то есть протокол http 1 1 а предполагает что после ответа соединение останется открытым а если не было передано специального заголовка специально заголовок это connection close а


Step 5 (S-44750) 4.png

[03:20 - 03:35] и так можно перефразировать логику соединение будет закрыта в том случае если либо клиент сервер работает по протоколу версии 1 0 а версия протокола у нас продается в 1 строчке запрос ответ


[03:35 - 03:52] то есть если сервер либо клиент видит что с ним работают оппонент с версии протокола 1 0 значит соединения нужно закрывать ничего не поделаешь это дань традиции а если сервер или клиент указал connection close а ну например


[03:52 - 04:09] если клиент знает что ему нужен ровно 1 документ и ему больше не нужно это соединение может облегчить работу серверов чтоб сервер не держала открытом соединений его просто закрыт а в случае если ни то ни другое не выполняются то есть


[04:09 - 04:27] и клиент и сервер использует постепенно 1 и заголовок connection close а передан небыл таком случае соединения остается открытым и поэтому соединений браузер сможет передать дополнительные запросы например а запросы на


[04:27 - 04:44] получение а дополнительных ресурсов картинок стилей java скриптов за счет этого загрузка всех с разных ресурсов идет по тому же эти соединения а что я основная страничка это существенно ускоряет


[04:44 - 05:02] загрузку основной странице а так или иначе а соединение а персистентность соединении которое предполагается что спереди на 1 они не живут долго то есть это не долгоживущий соединения у них очень короткий таймаут порядка около


[05:02 - 05:22] 10 секунд обычно а этот механизм передачи данных соединениях он а предназначен именно для того чтобы загрузить все ресурсы необходимые для 1 страничке через 1 соединение но этот механизм не обеспечивает действительно персистент подсоединен просто ускоряет загрузку


[05:22 - 05:37] 1 в австралии а через о время таймаута это соединение будет в любом случае закрыт сейчас существуют дополнительные механизмы которые


[05:37 - 05:54] ускоряют еще более ускоряет протоколу http в частности это расширение протокол спиде а предложенный компанией google и а новая версия протокола http которая основана на идее спите t 2 0