WebSockets vs. HTTP/2 VS. SSE Porównywane

WebSockets vs. HTTP/2 VS. SSE Porównywane
Istnieją trzy podstawowe technologie lub funkcje, jeśli chodzi o świat danych i protokołów komunikacji serwerów: HTTP/2, SSE i WebSockets. W zależności od punktu widzenia i wymagań, którąkolwiek z tych technologii może być konkurentami lub sojusznikami.

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:

  1. Wstecz kompatybilny z HTTP/1, w tym kody stanu, nagłówki i URI są zarezerwowane.
  2. Wiele strumieni danych w jednym połączeniu za pomocą multipleksowania żądania.
  3. Kompresja nagłówka, co znacznie poprawia wydajność.
  4. Wykonanie zadania za pośrednictwem protokołu binarnego zamiast poleceń tekstowych, które upraszcza aplikację poleceń.
  5. Push serwer umożliwia serwera wysyłanie dodatkowych danych do żądającego klienta, nawet jeśli dane nie są początkowo żądane.
  6. Usuwa funkcje, takie jak odchylenie domeny.

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.