Es gibt viele Blogs und Diskussionen über WebSocket und HTTP, und viele Entwickler und Websites befürworten WebSockets nachdrücklich, aber ich kann immer noch nicht verstehen, warum.
Zum Beispiel (Argumente von WebSocket-Liebhabern):
HTML5 Web Sockets stellt die nächste Evolution der Webkommunikation dar - ein bidirektionaler Vollduplex-Kommunikationskanal, der über einen einzigen Socket über das Web funktioniert. - websocket.org
HTTP unterstützt Streaming: Request Body Streaming (Sie verwenden es beim Hochladen großer Dateien) und Response Body Streaming.
Während des Verbindungsaufbaus mit WebSocket tauschen Client und Server Daten pro Frame aus, die jeweils 2 Byte betragen, im Vergleich zu 8 Kilobyte des HTTP-Headers bei kontinuierlichem Polling.
Warum enthalten diese 2 Bytes nicht den TCP- und Unter-TCP-Protokoll-Overhead?
GET /about.html HTTP/1.1
Host: example.org
Dies sind ~48 Bytes HTTP-Header.
HTTP chunked encoding - Chunked Transfer Kodierung :
23
This is the data in the first chunk
1A
and this is the second one
3
con
8
sequence
0
- Der Aufwand für jeden einzelnen Chunk ist also nicht groß.
Außerdem arbeiten beide Protokolle über TCP, so dass alle TCP-Probleme mit langlebigen Verbindungen bestehen bleiben.
Fragen:
- Warum ist das WebSockets-Protokoll besser?
- Warum wurde sie eingeführt, anstatt das HTTP-Protokoll zu aktualisieren?