WebSocket和http
时间: 2025-01-02 17:39:19 浏览: 6
### WebSocket 与 HTTP 协议的区别
#### 设计目标
WebSocket 和 HTTP 的设计初衷不同。HTTP 主要是为了满足网页浏览的需求,采用请求/响应模式进行数据交换。每次客户端发起请求后,服务端处理并返回相应结果,之后断开连接[^1]。
相比之下,WebSocket 被设计成一种可以提供持久化双向通讯能力的技术方案,在同一时间里允许服务器主动向客户推送消息而不必等待客户的查询请求。这种特性使得 Web 应用程序能够在无需频繁轮询的情况下实现实时更新功能[^4]。
#### 连接机制
对于 HTTP 来说,每一次交互都需要重新建立 TCP 链接,并且完成一次完整的握手流程才能开始传输数据;而在 WebSocket 中,则是在最初通过 HTTP 握手创建了一个特殊的升级请求来初始化会话之后,后续的数据帧就可以直接在这个已有的通道上传输而不需要再次经历复杂的三次握手过程了。
#### 数据格式
在传统 RESTful API 下使用的 JSON 或 XML 形式的结构化文档作为负载体被封装到了基于文本形式定义的消息体内发送给对方;然而 WebSocket 支持二进制流以及 UTF-8 编码字符串等多种类型的原始字节序列作为其有效载荷的一部分来进行高效的信息传递[^2]。
#### 性能表现
由于上述提到的原因加上其他因素的影响(比如头部大小),通常情况下 WebSocket 可以带来更低延时更少带宽占用的优势特别适合用来构建诸如在线游戏、股票行情展示之类的即时互动型业务逻辑。
```python
import websocket
def on_message(ws, message):
print(f"Received: {message}")
ws = websocket.WebSocketApp("wss://example.com/socket",
on_message=on_message)
ws.run_forever()
```
阅读全文