System Design.Short/long polling, SSE, WebSocket.
Пераклад групы артыкулаў пра складаныя сістэмы простымі словамі System Design. Добра падыходзіць для падрыхтоўкі да сумоўя. Github тут
1. Short/long polling, SSE, WebSocket
HTTP-сервер не можа самастойна ініцыяваць злучэнне з браўзерам. У выніку менавіта веб-браўзер з'яўляецца ініцыятарам. Што ж рабіць далей, каб атрымліваць абнаўленні ў рэальным часе ад HTTP-сервера?
Як веб-браўзер, так і HTTP-сервер могуць быць адказнымі за гэтую задачу.
Браўзеры выконваюць асноўную працу: кароткія або доўгія апытанкі. Пры кароткім апытанні (short pooling
) браўзер перыядычна паўтарае запыт, пакуль не атрымае актуальныя даныя. Пры доўгім апытанні (long pooling
) HTTP-сервер не вяртае адказ, пакуль не з’явяцца новыя даныя.
HTTP-сервер і браўзер супрацоўнічаюць: праз WebSocket
або SSE
(падзеі, што адпраўляюцца серверам). У абодвух выпадках HTTP-сервер можа непасрэдна дасылаць апошнія даныя браўзеру пасля ўсталявання злучэння. Розніца ў тым, што SSE — аднабаковы пратакол, таму браўзер не можа дасылаць новыя запыты, у той час як WebSocket — двухбаковы, і браўзер можа працягваць дасылаць запыты.
Каментары
(Каб даслаць каментар залагуйцеся ў свой уліковы запіс)