ZBLOG

websocket在建立连接后就没有http头了吗

是的,WebSocket在建立连接后就不再使用HTTP头了。WebSocket协议的初始握手确实是通过HTTP进行的,但一旦连接建立,后续的数据传输将不再包含HTTP头,而是使用一种更轻量级的二进制或文本帧格式。

WebSocket 连接流程

  1. 握手阶段
    • 客户端发起一个HTTP请求,试图建立WebSocket连接,这个请求包含一些特定的WebSocket头,例如UpgradeConnection等。
    • 服务器响应这个请求,并且同样包括这些头部,以确认升级到WebSocket协议。

示例客户端请求(握手):

  1. GET /chat HTTP/1.1
  2. Host: example.com
  3. Upgrade: websocket
  4. Connection: Upgrade
  5. Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
  6. Sec-WebSocket-Version: 13

示例服务器响应:

  1. HTTP/1.1 101 Switching Protocols
  2. Upgrade: websocket
  3. Connection: Upgrade
  4. Sec-WebSocket-Accept: s3pPLMBiTxaYVRnCq5dM0J8vWnU=
  1. 数据传输阶段
    • 一旦握手成功,客户端和服务器之间会形成持久连接。
    • 后续的数据通信不再使用HTTP,而是以”帧”(frame)的形式进行,每一帧都包含一些控制信息,例如数据类型、是否为最后一帧等。

数据格式

  • WebSocket帧由若干部分组成,包括:FIN位、操作码、掩码位、负载长度等。
  • 支持文本帧(UTF-8编码)和二进制帧(如图片、音频等)。

总结

在WebSocket连接建立之后,虽然最初是通过HTTP协议进行握手,但之后的所有通信都是基于WebSocket协议,而不是HTTP,因此没有HTTP头了。这种设计允许更高效、更低开销的数据交换。如果有其他问题或者需要更详细的信息,请告诉我!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22360

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?