【发布时间】:2016-09-17 10:05:35
【问题描述】:
最近我一直在研究 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 加密密钥。当连接处于活动状态时,是否会在两者之间使用此密钥?如果是这样,有没有办法在连接断开的情况下重复使用这个密钥?
【问题讨论】: