Step 5 (S-44900)

From Stepik Wiki
Jump to: navigation, search

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

Step 5 (S-44900) 1.png

[00:00 - 00:19] следующая технологии которые мы рассмотрим ее мы рассмотрим довольно коротко почтовый сервер а коротко мы рассмотрим потому что принципиально эта технология не сильно отличается от а коммент а во 2 она мало распространена


[00:19 - 00:34] а давайте посмотрим в чем проблема мы сказали происходит избыточное из опроса хотелось бы чтобы сервер просто в нужный момент отправляет клиенту данные


[00:34 - 00:52] ну а вы что имели в javascript такого механизма как бы не предусмотрено изначально предусмотрены механизмы запрос server push использует 1 интересную особенность браузеров


Step 5 (S-44900) 2.png

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


[01:09 - 01:24] то есть страница в странице фрейм а осуществляет get запрос причем надо сказать что это не аякс запрос от обычной get запрос на загрузку страницы что модель вот этот запрос


[01:24 - 01:44] а завтра начинается не к обычному сервак push серверу сервера то логично там скажем камедь специально сервер для поддержки от большого количества соединений а сервер никогда на этот вопрос не ответят до конца то есть веб сервер


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


[01:59 - 02:18] по частям тела ответа поэтому а отвечает заголовками а и после чего оставляет соединение открытым а в тот момент когда происходит сообщение вот когда на сервере появляется сообщение для данного пользователя сервер


[02:18 - 02:38] отдает какой то кусочек данных соединениях остается открытым приходит еще 1 сообщение отдает еще 1 кусочек да а то есть казалось бы ситуация на самом деле идеально по мере а по мере появления данных просто будет передавать клиенту


[02:38 - 02:55] а ну давайте посмотрим как все устроено на самом деле наклеить клиенте устроена следующим образом у нас есть некоторое страничка на этой страничке объявлено функция


Step 5 (S-44900) 3.png

[02:55 - 03:10] handle эта функция которая будет обрабатывать сообщения и а на этой странице есть и friend которой то краски обращается а


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


[03:28 - 03:46] а сервер отвечает вот такого рода строчками то есть сервер поскольку он возвращает содержимое фрейма должен вернуть то что мы страницу а ну а что мы страница она состоит вся из вызовов из тегов скрипт а


[03:46 - 04:02] т к скрипт заключается в том что делается такой вызов точка handel handel это вызов как раз таки функции handle в основном окне правительством по отношению к данному ну и собственно


[04:02 - 04:19] а в эту функцию парфенову передаются данные само сообщение то есть а вся технология основан основана на той особенностью что браузер пытается разбирать что мы а


[04:19 - 04:33] по мере ее поступления то есть если мы страничка грузится медленно по частям браузер будет ее выполнять по мере поступления от пришел кусочек браузер ее выполнил то есть там есть распарсил если а ц с он там


[04:33 - 04:52] добавила в таблицу стилей если уж на мыле какой то скрипт javascript у него выпали а то server push эксплуатируют вот эту особенность поведения браузеров а ну поскольку это не совсем официальный особенность


[04:52 - 05:08] есть и отрицательная сторона не все браузеры таким образом поступают некоторые не умеют у некоторых есть таймаута некоторые пытаются загрузить все данные вместе и только потом распарсить а поэтому


[05:08 - 05:26] и не получил такого широкого распространения но тем не менее идея вполне понятно то есть сервер медленно медленно отдает документ в момент когда у него появляются сообщения он в этот документ описывает вызов а функция


[05:26 - 05:31] с передачей данных эта технология сервер