gpt4 book ai didi

browser - WebSocket key 如何工作?

转载 作者:行者123 更新时间:2023-12-01 12:26:05 25 4
gpt4 key购买 nike

最近一直在研究WebSockets,我觉得它们很酷。但是,如果我看一下 here ,有些事情我不清楚。

要求:

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

请求者指定主机,因此中间服务器将知道请求应该到达哪里。请求者发送一个编码为 base64 的随机字符串,服务器发回一个加盐的 SHA1 加密 key 。当连接处于事件状态时,是否会在两者之间使用此 key ?如果是这样,即使连接断开,是否有办法重复使用此 key ?

最佳答案

正如您在维基百科链接中提到的那样:

In addition to Upgrade headers, the client sends a Sec-WebSocket-Key header containing base64-encoded random bytes, and the server replies with a hash of the key in the Sec-WebSocket-Accept header. This is intended to prevent a caching proxy from re-sending a previous WebSocket conversation, and does not provide any authentication, privacy or integrity.


Sec-WebSocket-Key仅在握手内部使用,不用于实际通信。

该 key 旨在通过发送随 secret 钥来防止代理缓存请求。如果代理仍然返回缓存的响应,可以通过验证 Sec-WebSocket-Accept 来检查。标题。

客户端可以忽略 Sec-WebSocket-Accept header (并希望响应没有被缓存)并且 WebSocket 协议(protocol)仍然可以正常工作。
在这种情况下,服务器可以实现忽略 Sec-WebSocket-Key header 而不返回 Sec-WebSocket-Accept标题。

如何生成 Sec-WebSocket-Accept可以在此答案中读取响应或验证的 header :
generate "Sec-WebSocket-Accept" from "Sec-WebSocket-Key"

关于browser - WebSocket key 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39545507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com