什么是;258EAFA5-E914-47DA-95CA-C5AB0DC85B11“;WebSocket协议中的方法

什么是;258EAFA5-E914-47DA-95CA-C5AB0DC85B11“;WebSocket协议中的方法,websocket,guid,magic-string,Websocket,Guid,Magic String,我不理解中“258EAFA5-E914-47DA-95CA-C5AB0DC85B11”的含义。 为什么服务器需要这个神奇的字符串? 为什么WebSocket协议需要这种机制?RFC解释了这一点。它是一个GUID,之所以选择它是因为“不理解WebSocket协议的网络端点不太可能使用它”。看 如果您对这样的guid格式的细节感兴趣,请参阅。来自: 没有理由选择魔术弦。选择特定的魔法字符串GUID是为了给WebSockets协议添加某种程度的完整性,因为该字符串是全局唯一的 RFC()只说: …将其

我不理解中“258EAFA5-E914-47DA-95CA-C5AB0DC85B11”的含义。 为什么服务器需要这个神奇的字符串?
为什么WebSocket协议需要这种机制?

RFC解释了这一点。它是一个GUID,之所以选择它是因为“不理解WebSocket协议的网络端点不太可能使用它”。看

如果您对这样的guid格式的细节感兴趣,请参阅。

来自:

没有理由选择魔术弦。选择特定的魔法字符串GUID是为了给WebSockets协议添加某种程度的完整性,因为该字符串是全局唯一的

RFC()只说:

…将其与全局唯一标识符(GUID, )字符串形式的“258EAFA5-E914-47DA-95CA-C5AB0DC85B11”, 它不太可能被不使用的网络端点使用 了解WebSocket协议


希望这能回答您的问题。

为什么WebSocket协议需要这种机制?


  • 浏览器只需使用下面的代码即可请求websocket连接

  • 新的WebSocket(“wss://echo.websocket.org“”
    为什么WebSocket协议需要这种机制?@DavidSchwartz我认为这是服务器用来验证即将到来的连接是WebSocket还是not@DavidSchwartz:除了它。1.3是该机制的简单总结,不规范。第4.2.2节中对相同机制的技术性详尽描述为规范性描述。GUID显示在步骤5的子步骤4下。为什么它会这样设计?如果协议没有连接guid而只是对客户机密钥进行编码怎么办?这是为了确保服务器是真正的websocket服务器。你必须问IETF他们为什么选择这个特殊的密钥和过程。绝对不可能快速记住!浏览器知道这个键,当它返回响应«Sec WebSocket Accept»时,它计算哈希,因为它知道他发送的键和guid。«Sec WebSocket Accept»必须匹配。这是为了启动http 101交换协议,否则它将无法工作。accept键+sha1中的guid,用base64编码。这是通用的。我想这只是一种盐,也就是说,通过查找rainbow表来防止泄露原始客户机密钥。