概念介绍
- 单项工作通信:数据传输只允许一种方式;数据由一方发送,由另一方接收和传输。
- 半双向:数据传输允许以两种方式发送和接收数据,但只有一方可以同时传输或接收数据。
- 全职:可同时获得双向数据传输。
网套演示。
- WebSocket是一个协议,用于在OSI模式应用水平上进行个人TCP连接的全时通信。WebSocket 便利客户与服务器之间的数据流动。使服务器能够自动向客户端提供数据。使用网络套餐 API,浏览器和服务器之间只需要握手。两者可以形成永久的纽带。以及双向数据传输。
出现背景
- HTTP协议是一个使用请求/回应架构的未开口、断开、单向应用层协议。 通信询问只能由客户提出,客户才能回答。
- 此通信模式存在问题: HTTP 协议无法让服务器主动启动与客户的通信。 许多网站使用全天候战略完成传输技术。 也就是说, 浏览器在设定的时间间隔内向服务器请求 http 。
HTTP 和 WebSocket
- Websocket是独立于HTTP以外的一项协议,但它必须依靠HTTP协议进行握手(握手阶段相同),在握手成功之后,数据从TCP渠道直接传输,而不考虑HTTP。
不同点
- Websocket 是一个长期连接, 而 http 是短期连接 。
- Websocket 协议以 ws/wss开头, 结尾则由 http/ https 对应 http/ https 。
- Websocketsites是有名的, 但HTTP是无国籍的。
- 连接到 Websocket 后, 服务器和客户端可以双向传输数据。 只有客户端发出请求后, 才能同时传输 http 返回 数据 。
- 网络工具包连接建立后,不再发出其他请求,数据直接从TCP频道传输。

HTTP协议头
参考
请求
- Accept: text/html,application/xhtml+xml,application/xml
- Accept-Encoding: gzip, deflate, br
- Accept-Language: zh-CN,zh;q=0.9
- Connection: keep-alive
- Host: www.baidu.com
- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36
响应
- Connection: keep-alive
- Content-Encoding: gzip
- Content-Type: text/html;charset=utf-8
- Date: Sat, 16 Apr 2022 10:43:46 GMT
- Server: BWS/1.1
websocket
请求
- Accept-Encoding: gzip, deflate
- Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
- Connection: Upgrade
- Host: 192.168.1.2:8080
- Sec-WebSocket-Key: 821VqJT7EjnceB8m7mbwWA==
- Sec-WebSocket-Version: 13
- Upgrade: websocket
- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39
响应
- Connection: Upgrade
- Date: Sat, 16 Apr 2022 10:49:05 GMT
- Sec-WebSocket-Accept: paFykwJusIMnfpohWxA5HVpjD1Q=
- Server: Server
- Upgrade: websocket
网球的顶级故事。
- 升级: 通知服务器使用哪类协议, 网络服务器上正在使用 Websocket 协议 。
- Sec- WebSocket- Key:浏览器生成的随机 Base64 编码值
- Sec-WebSocket-Version: 网络工具包协议版本 。
- Sec- WebSocket- Accept: 由服务器验证, 由 Sec- WebSocket- Key 加密, 用于显示客户端和服务器在通信 。
代码展示
服务端
QT 用于创建服务器。
客户端
本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/22440.html。