Sec-WebSocket-Key 说明
所属分类 websocket
浏览量 55
Sec-WebSocket-Key 由客户端生成,用于在 WebSocket 握手过程中验证服务器是否支持 WebSocket 协议。
Sec-WebSocket-Key 生成过程如下:
客户端生成随机字符串:客户端首先生成一个随机的 16 字节值,这个值通常是通过随机数生成器生成的。
Base64 编码:生成的 16 字节随机值随后被 Base64 编码,形成 Sec-WebSocket-Key。
发送给服务器:客户端将这个 Sec-WebSocket-Key 包含在 WebSocket 握手请求的头部中发送给服务器。
服务器验证:
服务器接收到 Sec-WebSocket-Key 后,会将其与一个固定的 GUID 字符串(258EAFA5-E914-47DA-95CA-C5AB0DC85B11)拼接,
然后进行 SHA-1 哈希运算,最后将结果进行 Base64 编码,生成 Sec-WebSocket-Accept 响应头,返回给客户端。
安全哈希算法(Secure Hash Algorithm)
主要用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)
对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Origin: http://example.com
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat
上一篇
下一篇
Flink 任务 Tasks 和 任务槽 Task Slots
CDC Change Data Capture
dolphinscheduler配置说明
WebSocket介绍
netty内置编解码器
MQTT与WebSocket