Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Analyse der Prinzipien der Implementierung des WebSocket-Protokolls in HTML5_html5-Tutorial-Fähigkeiten

Eine kurze Analyse der Prinzipien der Implementierung des WebSocket-Protokolls in HTML5_html5-Tutorial-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 15:47:341280Durchsuche

Das WebSocket-Protokoll ist für die Zusammenarbeit mit der vorhandenen Netzwerkinfrastruktur konzipiert. Als Teil dieses Designprinzips definiert die Protokollspezifikation für eine WebSocket-Verbindung eine HTTP-Verbindung als Beginn ihres Lebenszyklus und gewährleistet so vollständige Abwärtskompatibilität mit der Welt vor WebSocket. Im Allgemeinen wird der Wechsel von WebSocket vom HTTP-Protokoll als WebSocket-Handshake bezeichnet.

Der Browser sendet eine Anfrage an den Server, die angibt, dass er das WebSocket-Protokoll von HTTP wechseln möchte. Der Wunsch des Kunden, ausgedrückt durch den Upgrade-Titel, der Code lautet wie folgt:


Code kopieren
Der Code lautet wie folgt:
GET ws://echo.websocket. org/? binding=text HTTP/1.1
Ursprung: http://websocket.org
Cookie: __utma=99as
Verbindung: Upgrade
Host: echo.websocket.org
Sec- WebSocket-Schlüssel: uRovscZjNol/umbTt5uKmw==
Upgrade: websocket
Sec-WebSocket-Version: 13


Wenn der Server das WebSocket-Protokoll versteht, stimmt er dem Protokollwechsel über den Upgrade-Header zu.


Code kopieren
Der Code lautet wie folgt:
HTTP/1.1 101 WebSocket Protocol Handshake
Datum: Fr, 10. Februar 2012 17:38:18 GMT
Verbindung: Upgrade-Server: Kaazing Gateway
Upgrade: WebSocket
Access-Control-Allow-Origin: http://websocket.org
Access- Control-Allow-Credentials: true
Sec-WebSocket-Accept: rLHCkw/SKsO9GAH/ZSFhBATDKrU=
Access-Control-Allow-Headers: content-type


An diesem Punkt bricht die HTTP-Verbindung ab und ersetzt die WebSocket-Verbindung durch dieselbe zugrunde liegende TCP/IP-Verbindung. WebSocket-Verbindungen verwenden standardmäßig HTTP (80) und denselben Port wie HTTPS (443).

Nachdem die Verbindung hergestellt wurde, können WebSocket-Datenrahmen im Vollduplexmodus zwischen Client und Server hin und her gesendet werden. Sowohl Text- als auch Binärrahmen können gleichzeitig in beide Richtungen gesendet werden. Nur zwei Datenbytes werden minimal gerahmt. Bei Textrahmen beginnt jeder Rahmen bei 0x00 Byte und endet bei 0xff Byte und enthält UTF-8-Daten. WebSocket-Textrahmen verwenden ein Abschlusszeichen, während Binärrahmen eine Präfixlänge verwenden.

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