Websockets vs. Http/2 vs. SSE verglichen

Websockets vs. Http/2 vs. SSE verglichen
Es gibt drei primäre Technologien oder Funktionen, wenn es um die Welt der Daten- und Server-Client-Kommunikationsprotokolle geht: HTTP/2, SSE und WebSockets. Abhängig von Ihrem Standpunkt und Ihrer Anforderungen kann eine dieser Technologien Konkurrenten oder Verbündete sein.

In diesem Tutorial wird das, was diese Technologien mit sich bringen und was jeder von ihnen bietet. Dies hilft Ihnen, je nach den von Ihnen gesuchten Funktionen zu verstehen und eine Wahl zu treffen.

NOTIZ: Dieser Leitfaden ist kein Primer für eine der oben genannten Technologien. Es ist einfach ein Überblick darüber, was man über den anderen bieten kann.

Lassen Sie uns anfangen:

Websockets

WebSocket ist ein Standardprotokoll, das eine anhaltende Verbindung zwischen einem Server und einem Client bietet. Websockets sind bidirektional. Dies bedeutet, dass ein Server und ein Client und eine Sende- und Empfangsdaten im selben Kanal befinden. Es handelt sich um ein Full-Duplex-Kommunikationsprotokoll, das auf TCP/IP-Socket implementiert ist.

Websockets helfen dabei, den Grenzen des HTTP -Protokolls entgegenzuwirken.

Erstens ist das HTTP -Protokoll nicht bidirektional. Der Client fordert eine bestimmte Ressource auf dem Server an. Sobald der Server die Ressource an den Client findet und sendet, schließt die Verbindung. Das bedeutet, dass bei einem sehr aktiven Datenfluss wie Streaming -Dienst zu viele Serveranforderungen vorhanden sind.

Im Gegensatz zu HTTP können WebSockets eine Verbindung verwalten, bis entweder der Client oder der Server sie endet. Es funktioniert, indem zuerst ein Handschlag zwischen dem Client und dem Server erstellt wird, gefolgt von einem Upgrade -Header. Sobald festgestellt wurde, wird ein Datenfluss zwischen dem Server und dem Client festgelegt.

Das obige Diagramm zeigt, wie das HTTP -Protokoll im Vergleich zu WebSockets funktioniert.

NOTIZ: Die oben genannten Diagramme vermitteln weder in HTTP- noch in WebSocket-Protokollen ein vollwertiges Wissen über vollwertige Kenntnisse.

Http/2

HTTP/2 oder HTTP2 ist die zweite Implementierung des HTTP -Netzwerkprotokolls zur Definition des Formats und der Übertragung von Daten. Der Zweck von HTTP/2 besteht darin, die Leistung über HTTP durch Reduzierung der Latenz zu verbessern, die durch Aktivieren von Funktionen wie vollständige Anforderung und Reaktion und die Minimierung des Protokollaufwands durch Komprimierung von Header -Dateien minimieren.

HTTP/2 wird in wichtigen Browsern unterstützt und im gesamten Web verwendet.

Im Folgenden finden Sie einige der Vorteile von HTTP/2:

  1. Rückwärtskompatibel mit HTTP/1, einschließlich Statuscodes, Headern und URIs, sind reserviert.
  2. Mehrfacher Datenstrom in einer einzelnen Verbindung über Anforderung Multiplexing.
  3. Headerkomprimierung, die die Leistung erheblich verbessert.
  4. Aufgabenausführung über binäres Protokoll anstelle von Textbefehlen, die die Befehlsanwendung vereinfachen.
  5. Server -Push, sodass der Server zusätzliche Daten an den anfordernden Client senden kann, auch wenn die Daten ursprünglich nicht angefordert werden.
  6. Es entfernt Funktionen wie Domain Sharding.

Das obige ist ein grundlegender Überblick über die Merkmale des HTTP/2 -Protokolls. Unten finden Sie eine einfache Darstellung des HTTP -Protokolls.

Kredit: Mozilla Developer Network https: // Entwickler.Mozilla.org/en-us/docs/web/http/Übersicht

Server-Sent-Ereignisse

Server-Sent-Event (SSEs) ist eine Technologie, mit der der Client Aktualisierungen von einem HTTP-Server empfangen kann. Obwohl es immer möglich war, Updates vom Server zum Client zu übertragen, müsste der Client anfordern, wenn Aktualisierungen auf dem Server vorhanden sind. Verwenden von SSEs sind Aktualisierungen automatisch.

SSEs werden mit regelmäßigen HTTP -Datenströmen implementiert. Daher sind SSEs auf den Verbindungspool des Clients (Browser) von 6 gleichzeitigen HTTP -Verbindungen zu einem Server beschränkt. Sie bieten jedoch nicht die Funktionalität, einen abgelassenen Client zu erkennen.

https: // html.Spezifikation.Waswg.org/multipage/server-sent-event.HTML#Server-Sent-Events

Sie können auch Ressourcen für den SSE -Kunden in den unten angegebenen Links finden:

https: // github.com/mpetazzoni/sseclient

https: // github.com/bTubbs/sseclient

Websockets vs. Http/2 vs. SSE

Lassen Sie uns nun zum Thema gehen und die Unterschiede zwischen den diskutierten Technologien auflisten.

Websocket Http/2 SSE
Vollduplex Halbduplex Vollduplex
Bidirektional Eine Interaktion von einem Client mit einer bestimmten HTTP -Methode ist erforderlich Unidirektional
Weniger Overhead Overhead zum SSL -Handschlag hinzugefügt
Service Push ist eine Basisimplementierung des Protokolls Nur in HTTP/2 unterstützt Die Basistechnologie
Unterstützt von großen Browsern In allen Browsern unterstützt Nicht alle Browser unterstützen es.
1024 Parallele Verbindungen 6-8 Parallele Verbindungen 6 Parallele Verbindungen
Nicht standardmäßiger Lastausgleich Standard -Lastausgleich Standard -Lastausgleich

Abschluss

Wir haben Technologien wie WebSockets, ihre Arbeit und ihre Implementierung durchgesehen. Dieses Tutorial dient nur als Grundlage für die genannten Technologien. Betrachten Sie externe Ressourcen, um mehr zu erfahren.