Home  >  Article  >  Web Front-end  >  A brief analysis of the principles of implementing WebSocket protocol in HTML5_html5 tutorial skills

A brief analysis of the principles of implementing WebSocket protocol in HTML5_html5 tutorial skills

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

The WebSocket protocol is designed to work with existing network infrastructure. As part of this design principle, the protocol specification for a WebSocket connection defines an HTTP connection as the beginning of its life cycle, thus ensuring full backward compatibility with the pre-WebSocket world. Generally speaking, switching WebSocket from HTTP protocol is called WebSocket handshake.

The browser sends a request to the server, indicating that it wants to switch the WebSocket protocol from HTTP. The client’s desire expressed through the upgrade title, the code is as follows:


Copy code
The code is as follows:
GET ws://echo.websocket.org/? encoding=text HTTP/1.1
Origin: http://websocket.org
Cookie: __utma=99as
Connection: Upgrade
Host: echo.websocket.org
Sec-WebSocket-Key : uRovscZjNol/umbTt5uKmw==
Upgrade: websocket
Sec-WebSocket-Version: 13


If the server understands the WebSocket protocol, it agrees to the protocol switch via the Upgrade header.


Copy code
The code is as follows:
HTTP/1.1 101 WebSocket Protocol Handshake
Date: Fri, 10 Feb 2012 17:38:18 GMT
Connection: 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


At this point the HTTP connection breaks down and replaces the WebSocket connection on the same underlying TCP/IP connection. WebSocket connections use HTTP (80) and the same port as HTTPS (443), by default.

After the connection is established, WebSocket data frames can be sent back and forth between the client and server in full-duplex mode. Both text and binary frames can be sent simultaneously in both directions. Only two bytes of data are minimally framed. For text frames, each frame starts at 0x00 bytes and ends at 0xff bytes, containing UTF-8 data. WebSocket text frames use a terminator, while binary frames use a prefix length.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn