发布网友 发布时间:2023-05-28 15:12
共1个回答
热心网友 时间:2023-11-01 04:52
来自客户端的握手
来自服务器的握手
来自客户端的引导行遵从Request-Line格式,来自服务器的引导行遵从Status-Line格式。Request-Line和Status-Line在[RFC2616]定义。
两种情况下,引导行后面跟着一组未排序的头域。这些头域的意义在本文档第4章指定。额外的头域也可能出现,如cookie[RFC6265]。头格式和解析在[RFC2616]定义。
一旦客户端和服务器都发送了他们的握手。如果握手成功,传输数据部分开始。这是一个双向传输通道,每个端都能独立、随意发送数据。
握手成功后,客户端和服务器来回传输的数据是以消息message为概念单位。在传输介质上(on the wire),一个消息由一个或多个帧frame组成。WebSocket消息不需要对应到特定网络层的帧,业务分帧后的消息可能被中间设施合并或分拆。
一个帧都有一个关联的类型。属于同一个消息的帧拥有相同的数据类型,广义的说,有文本数据(解析为utf-8文本)、二进制数据(他的解析留给了应用程序)和控制帧(不打算携带应用数据,携带的是协议层的信号,如连接关闭信号)类型。
引用以下文章:
WebSocket Protocol
https://github.com/zhangkaitao/websocket-protocol
WebSocket握手协议
RFC-6455 WebSocket Git-Book