Heim  >  Artikel  >  Der Unterschied zwischen WebSocket und http

Der Unterschied zwischen WebSocket und http

藏色散人
藏色散人Original
2020-12-07 10:24:1956201Durchsuche

Der Unterschied zwischen WebSocket und http: 1. WebSocket ist ein bidirektionales Kommunikationsprotokoll, das das Socket-Protokoll simuliert und Informationen in beide Richtungen senden oder empfangen kann, während HTTP unidirektional ist; 2. WebSocket erfordert einen Handshake zwischen dem Browser und der Server, um eine Verbindung herzustellen, und http ist eine vom Browser initiierte Verbindung zum Server.

Der Unterschied zwischen WebSocket und http

Die Betriebsumgebung dieses Artikels: Windows 7-System, Dell G3-Computer.

Empfohlen: „Programmiervideo

1. Was ist WebSocket?

WebSocket ist ein von der HTML5-Spezifikation vorgeschlagenes Protokoll. Mit Ausnahme des IE-Browsers von Wanduzi wird es derzeit grundsätzlich von anderen Browsern unterstützt. Es ist ein Protokoll, das sich ohne seine Wurzeln nie ändert und außerdem auf dem TCP-Protokoll basiert; es existiert neben dem HTTP-Protokoll.

WebSocket ist ein Protokoll in HTML5. Die HTML5-Web-Sockets-Spezifikation definiert die Web-Sockets-API, die die Vollduplex-Kommunikation zwischen der Seite und dem Remote-Host mithilfe des Web-Socket-Protokolls unterstützt. Es führt die WebSocket-Schnittstelle ein und definiert einen Vollduplex-Kommunikationskanal für den Betrieb im Web über einen einzigen Socket.

HTML5 Web Sockets bieten effiziente Webkonnektivität mit minimalem Overhead. Im Vergleich zum alten Polling oder Long Polling (Comet), bei dem oft Echtzeitdaten an den Client übertragen oder sogar zwei HTTP-Verbindungen aufrechterhalten werden müssen, um eine Vollduplex-Verbindung zu simulieren, werden dadurch unnötiger Netzwerkverkehr und Latenz erheblich reduziert.

Um von einem Web-Client mithilfe von HTML5-Web-Sockets eine Verbindung zu einem Remote-Endpunkt herzustellen, erstellen Sie eine neue WebSocket-Instanz und geben ihr eine URL an, die den Remote-Endpunkt darstellt, mit dem Sie eine Verbindung herstellen möchten.

Die Spezifikation definiert die Modi ws:// und wss:// zur Darstellung von WebSocket- bzw. sicheren WebSocket-Verbindungen, was dem Unterschied zwischen http:// und https:// ähnelt.

Eine WebSocket-Verbindung wird durch ein Upgrade auf das Web-Socket-Protokoll während der ersten Handshake-Phase des HTTP-Protokolls zwischen dem Client und dem Server hergestellt. Die zugrunde liegende Schicht ist immer noch eine TCP/IP-Verbindung.

2. Die Beziehung zwischen WebSocket und Socket

Socket ist eigentlich kein Protokoll, sondern eine zur Vereinfachung der Verwendung von TCP oder UDP abstrahierte Schicht. Es handelt sich um eine Reihe von Schnittstellen zwischen der Anwendungsschicht und der Übertragungssteuerungsschicht.

"Socket ist eine zwischengeschaltete Software-Abstraktionsschicht, die zwischen der Anwendungsschicht und der TCP/IP-Protokollfamilie kommuniziert. Es handelt sich um eine Reihe von Schnittstellen, die eine Reihe von APIs zum Aufrufen des TCP/IP-Protokolls bereitstellen.

Im Entwurfsmuster , Socket ist eigentlich ein Fassadenmuster, es verbirgt die komplexe TCP/IP-Protokollsuite hinter der Socket-Schnittstelle. Für Benutzer ist eine Reihe einfacher Schnittstellen alles, damit Socket Daten so organisieren kann, dass sie dem angegebenen Protokoll entsprechen Hosts kommunizieren, müssen über Socket verbunden sein und Socket verwendet das TCP/IP-Protokoll, um eine TCP-Verbindung herzustellen. TCP-Verbindungen basieren stärker auf dem zugrunde liegenden IP-Protokoll, während IP-Protokollverbindungen auf niedrigeren Schichten wie der Verbindungsschicht basieren.

WebSocket ist ein typisches Protokoll der Anwendungsschicht, genau wie HTTP.

Der Unterschied zwischen WebSocket und httpZusammenfassung:

Socket ist die Schnittstelle der Übertragungssteuerungsschicht und WebSocket ist das Protokoll der Anwendungsschicht.

3. Die Beziehung zwischen WebSocket und HTTP

Beziehungsdiagramm:

Der Unterschied zwischen WebSocket und httpDie gleichen Punkte

basieren beide auf TCP und sind beide zuverlässige Übertragungsprotokolle.

Das sind alles Protokolle der Anwendungsschicht.

Unterschied

WebSocket ist ein bidirektionales Kommunikationsprotokoll, das das Socket-Protokoll simuliert und Informationen in beide Richtungen senden oder empfangen kann. HTTP ist einseitig.

WebSocket erfordert einen Handshake zwischen dem Browser und dem Server, um eine Verbindung herzustellen. Bei http initiiert der Browser eine Verbindung zum Server, und der Server kennt diese Verbindung nicht im Voraus.

Kontakt

WebSocket Beim Aufbau eines Handshakes werden Daten über HTTP übertragen. Nach der Einrichtung ist das HTTP-Protokoll jedoch während der tatsächlichen Übertragung nicht mehr erforderlich.

Zusammenfassung:

In WebSocket müssen Server und Browser lediglich eine Handshake-Aktion über das HTTP-Protokoll ausführen und dann einen separaten TCP-Kommunikationskanal für die Datenübertragung einrichten.

Der Prozess der WebSocket-Verbindung ist:

Zuerst initiiert der Client eine HTTP-Anfrage, und nach drei Handshakes wird eine TCP-Verbindung hergestellt. In der HTTP-Anfrage werden Informationen wie die von WebSocket unterstützte Versionsnummer gespeichert, z. B.: Upgrade, Verbindung, WebSocket-Version Warten;

Nachdem der Server die Handshake-Anfrage des Clients erhalten hat, verwendet er auch das HTTP-Protokoll, um Daten zurückzugeben.

Nachdem der Client die Nachricht erhalten hat, dass die Verbindung erfolgreich ist, wird er vollständig gestartet. Duplex-Kommunikation mit Hilfe des TCP-Übertragungskanals.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen WebSocket und http. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn