Ten samouczek rozbije to, co pociągają za sobą te technologie i co każdy z nich oferuje. Pomoże ci to zrozumieć i dokonać wyboru w zależności od funkcji, których szukasz.
NOTATKA: Ten przewodnik nie jest podkładem żadnej z wyżej wymienionych technologii. Jest to po prostu przegląd tego, co można zaoferować nad drugim.
Zacznijmy:
WebSockets
WebSocket to standardowy protokół, który zapewnia trwałe połączenie między serwerem a klientem. WebSockets są dwukierunkowe. Oznacza to, że serwer i klient i wysyłanie danych i odbierania są w tym samym kanale. Jest to protokół komunikacji pełnej dupleksu zaimplementowany na gnieździe TCP/IP.
WebSockets pomagają przeciwdziałać ograniczeniom protokołu HTTP.
Po pierwsze, protokół HTTP nie jest dwukierunkowy. Klient żąda określonego zasobu na serwerze. Po znalezieniu i wysyłaniu zasobu do klienta połączenie zamyka. Oznacza to bardzo aktywny przepływ danych, taki jak usługa przesyłania strumieniowego, będzie zbyt wiele żądań serwera.
W przeciwieństwie do HTTP, WebSockets może utrzymywać połączenie, dopóki klient lub serwer nie zakończy go. Działa poprzez najpierw tworzenie uścisku dłoni między klientem a serwerem, a następnie nagłówek aktualizacji. Po ustaleniu ustalono przepływ danych między serwerem a klientem.
Powyższy schemat ilustruje, jak działa protokół HTTP w porównaniu z WebSockets.
NOTATKA: Powyższe diagramy nie zapewniają pełnoprawnej wiedzy o protokole HTTP lub WebSocket.
HTTP/2
HTTP/2 lub HTTP2 jest drugą implementacją protokołu sieci HTTP używanego do zdefiniowania formatu i transmisji danych. Celem HTTP/2 jest zwiększenie wydajności w stosunku do HTTP poprzez zmniejszenie opóźnienia, zastosowane przez funkcje takie jak pełne żądanie i odpowiedź oraz minimalizacja kosztów ogólnych protokołów poprzez kompresję plików nagłówka.
HTTP/2 jest obsługiwane w głównych przeglądarkach i używane w całej sieci.
Oto niektóre z zalet oferowanych przez HTTP/2:
Powyższe jest podstawowym przeglądem funkcji protokołu HTTP/. Poniżej znajduje się prosta ilustracja protokołu HTTP.
Kredyt: Mozilla Developer Network https: // programista.Mozilla.org/en-us/docs/web/http/przegląd
Zdarzenia Server-Sent
Zdarzenie serwera (SSES) to technologia, która pozwala klientowi odbierać aktualizacje z serwera HTTP. Chociaż zawsze możliwe było przekazywanie aktualizacji z serwera do klienta, klient musiałby żądać, jeśli na serwerze istnieją jakieś aktualizacje. Korzystając z SSE, aktualizacje są automatyczne.
SSE są implementowane przy użyciu zwykłych strumieni danych HTTP. Dlatego SSE są ograniczone do puli połączeń klienta (przeglądarki) 6 równoległych połączeń HTTP z jednym serwerem. Nie zapewniają jednak funkcji wykrycia upuszczonego klienta.
https: // html.Spec.Whatwg.Org/multipage/Server-Sent-Events.HTML#Server-Sent-Events
Możesz także znaleźć zasoby dla klienta SSE w linkach podanych poniżej:
https: // github.com/mpetazzoni/sseclient
https: // github.com/btubbs/sseclient
WebSockets vs. HTTP/2 VS. SSE
Przejdźmy teraz do tematu i wymienić różnice między omawianymi technologiami.
WebSocket | HTTP/2 | SSE |
---|---|---|
Pełny dupleks | Pół-dupleks | Pełny dupleks |
Dwukierunkowy | Wymagana jest interakcja z klientem z określoną metodą HTTP | Jednokierunkowy |
Mniej kosztu | Dodano narzut do uścisku dłoni SSL | |
Push Service to podstawowa implementacja protokołu | Obsługiwane tylko w HTTP/2 | Technologia podstawowa |
Wspierane przez główne przeglądarki | Obsługiwane we wszystkich przeglądarkach | Nie wszystkie przeglądarki to obsługują. |
1024 Połączenia równoległe | 6-8 Połączenia równoległe | 6 połączeń równoległych |
Niestandardowe równoważenie obciążenia | Standardowe równoważenie obciążenia | Standardowe równoważenie obciążenia |
Wniosek
Przeżyliśmy technologie, takie jak WebSockets, sposób, w jaki pracują i ich wdrażanie. Ten samouczek służy jedynie jako podstawa wspomnianych technologii. Rozważ zasoby zewnętrzne, aby dowiedzieć się więcej.