WebSocket协议与HTTP协议的不同
WebSocket 是基于TCP/IP协议,独立于HTTP协议的通信协议。WebSocket 是双向通讯,有状态,客户端一(多)个与服务端一(多)双向实时响应(客户端 ⇄ 服务端)。
WebSocket工作原理
1、用户打开Web浏览器,并访问Web站点。
2、Web浏览器(客户端)与Web服务端建立连接。
3、Web浏览器(客户端)能定时收发Web服务端数据,Web服务端也能定时收发Web浏览器数据。
PS: WebSocket协议不受同源策略影响。
请求消息体
# 请求头部分
# [请求方式] [资源路径] [版本]
GET /xxx HTTP/1.1
# 主机。
Host: server.example.com
# 协议升级。
Upgrade: websocket
# 连接状态。
Connection: Upgrade
# websocket客户端生成的随机字符。
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
# websocket协议的子协议,自定义字符,可以理解为频道。
Sec-WebSocket-Protocol: chat, superchat
# websocket协议的版本是13。
Sec-WebSocket-Version: 13
响应消息体
# 响应头部分
# [版本] [状态码]
HTTP/1.1 101 Switching Protocols
# 协议升级。
Upgrade: websocket
# 连接状态。
Connection: Upgrade
# WebSocket服务端根据Sec-WebSocket-Key生成的随机字符。
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
# WebSocket协议的子协议,自定义字符,可以理解为频道。
Sec-WebSocket-Protocol: chat