首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >websocket的握手流程

websocket的握手流程

原创
作者头像
用户8671053
修改2021-09-26 17:40:17
修改2021-09-26 17:40:17
1.1K0
举报
文章被收录于专栏:码农的生活码农的生活

websocket的握手流程

上面我们讲过了,websocket是从HTTP协议升级的,客户端通过发送:

代码语言:javascript
复制
Upgrade: websocket
Connection: Upgrade

到服务器端,对协议进行升级。我们举一个具体的例子:

代码语言:javascript
复制
GET /webscoket HTTP/1.1
Host: www.flydean.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x123455688xafe=
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Origin: http://flydean.com

对应的server端的返回:

代码语言:javascript
复制
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: Qhfsfew12445m=
Sec-WebSocket-Protocol: chat

在上面的例子中,除了使用Upgrade头之外,客户端还向服务器端发送了Sec-WebSocket-Key header。这个header包含的是一个 base64 编码的随机字节。server对应的会返回这个key的hash值,并将其设置在Sec-WebSocket-Accept header中。

这里并不是为了安全操作,而是为了避免上一次的连接缓存情况。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • websocket的握手流程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档