websocket 升级协议时的协议切换点

websocket 的 rfc6455 标准中提到了协议升级,从http协议升级到websocket协议,用的办法是在http的request header中包含Connection: upgrade 和 Upgrade: websocket 以及其他验证相关的头。服务器验证通过后发送 respond,并升级到websocket。但这儿有一个小问题,在rfc6455中并没有明确的提到,就是服务器在接收到http请求头之后,如何从文本格式切换到帧格式?这儿有没有一个明确的切换标志?在 rfc6455 中只明确提到使用 rfc2616 http/1.1 协议,在翻阅 rfc2616 之后,在4.1节 Message Types 中发现了这个标志:

Request (section 5) and Response (section 6) messages use the generic message format of RFC 822 [9] for transferring entities (the payload of the message). Both types of message consist of a start-line, zero or more header fields (also known as "headers"), an empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header fields, and possibly a message-body.

generic-message = start-line *(message-header CRLF) CRLF [ message-body ] start-line = Request-Line | Status-Line

协议中提到在收到第一个空行之后,表示请求头结束,剩下的就是payload部分。而websocket由于是请求/响应协议升级,没有附带的payload,因此,可以确定的是,在收到连续的两个CRLF之后,表示文本部分结束,如果升级成功,则接下来传输的数据就是websocket 帧数据了。

相关推荐
Nerd Nirvana10 小时前
TLS 1.3 与 DLMS Suite2(安全套件2)实现异同详解
网络·安全·dlms·tls·加密传输·智能终端
海兰10 小时前
【小程序】 贪吃蛇(Next.js+WebSocket+SQLite + Prisma ORM)
javascript·websocket·小程序
独钓寒江雨10 小时前
SRH介绍
运维·网络·srv6
Multipath71210 小时前
多链路聚合路由与宽带自组网、卫星便携站结合的传输应用
网络·5g·安全·无人机·实时音视频
Upsy-Daisy11 小时前
OpenClaw 源码解析(九):Channel 接入机制与消息路由流程
linux·运维·网络
2301_7807896611 小时前
网站被 DDoS 攻击的过程和应对方案
网络·安全·web安全·架构·kubernetes·ddos
泰思特电子_3ctest11 小时前
电动汽车高压人工网络(AN)功能详解与校准指南:3CTEST完整解决方案
网络
天高云淡ylz12 小时前
NAT网关(二)NAT耦合器的隔离与通讯逻辑
网络·制造·ot
盟接之桥12 小时前
什么是电子数据交换(EDI)|AS2 协议详解
运维·服务器·网络·安全·低代码·汽车·制造
云计算-Security12 小时前
计算机网络 7 个性能指标
网络·计算机网络