一、WebSocket协议握手机制 WebSocket协议通过HTTP Upgrade机制完成协议升级,客户端请求头包含: GET /ws HTTP/1.1 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== 服务端响应101状态码表示协议切换成功: HTTP/1.1 101
1. 响应码101在HTTP协议中的含义 在HTTP协议中,响应码101表示“切换协议”(Switching Protocols)。这个响应码通常用于协议升级场景,如从HTTP/1.1切换到WebSocket协议。 2. WebSocket协议与HTTP协议的关系 WebSocket协议是基于HTTP协议的扩展,用于在单个TCP连接上进行全双工通信。在建立WebSocket连接之前,客户端和服务器之间...
一个典型的WebSocket握手请求包括以下内容:客户端请求:GET / HTTP/Upgrade: websocketConnection: UpgradeHost: example.comOrigin: http://example.comSec-WebSocket-Key: sN9cRrP/n9NdMgdcy2VJFQ==Sec-WebSocket-Version:服务器回应:HTTP/1 101 Switching ProtocolsUpgrade: websocketConnection: UpgradeSec-WebSocket...
2.上游 WebSocket 服务器响应连接请求并完成握手协议,如果允许升级,将响应状态码101返回给 Nginx。服务端的响应类似于下图所示: HTTP/1.1101SwitchingProtocolsServer:xxxDate:Wed,22Feb202306:23:49GMTconnection:upgradeupgrade:websocketSec-WebSocket-accept:VVN2Pd9jkG7b8ur3otAk+Ah3bsg=Sec-WebSocket-Extensions:permess...
HTTP/1.1 101 Switching Protocols Connection:Upgrade Upgrade: websocket Sec-WebSocket-Accept: Oy4NRAQ13jhfONC7bP8dTKb4PTU= 响应行: HTTP/1.1 101 Switching Protocols。 响应必须含有 Upgrade, 其值为 "weboscket"。 响应必须含有 Connection, 其值为 "Upgrade"。 响应必须含有 Sec-Websocket-Accept, 根据请...
Sec-WebSocket-Accept的值是服务端采用与客户端一致的密钥计算出来后返回客户端的,HTTP/1.1 101 Switching Protocols表示服务端接受WebSocket协议的客户端连接,经过这样的请求-响应处理后,两端的WebSocket连接握手成功, 后续就可以进行TCP通讯了。 在开发方面,WebSocketAPI也十分简单:只需要实例化 WebSocket,创建连接,然后服...
HTTP/1.1 101 Switching ProtocolsUpgrade: websocketConnection: UpgradeSec-WebSocket-Accept: fFBooB7FAkLlXgRSz0BT3v4hq5s=Sec-WebSocket-Location: ws://example.com/ 关键点: Connection 必须设置 Upgrade,表示客户端希望连接升级。 Upgrade 字段必须设置 Websocket,表示希望升级到 Websocket 协议。
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: upgrade 告诉客户端已成功切换协议,升级为Websocket协议。握手成功之后,服务器端和客户端便角色对等,就像普通的Socket一样,能够双向通信。不再进行HTTP的交互,而是开始WebSocket的数据帧协议实现数据交换。
WebSocket工作在HTTP的80和443端口并使用前缀ws://或者wss://进行协议标注,在建立连接时使用HTTP/1.1的101状态码进行协议切换, 当前标准不支持两个客户端之间不借助HTTP直接建立Websocket连接。 更多Websocket的介绍可参考我写的聊一聊WebSocket一文。 开发小程序的时候需要用到WebSocket长连接和推送技术,但是必须使用wss...
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= 经过这样的握手,双方就可以建立 WebSocket 连接,进行实时双向通讯了。 配置WebSocket 反向代理 nginx 反向代理 WebSocket 的话,需要明确地添加Upgrade和Connection头: # 如果没有Upgrade...