Sec-WebSocket-accept
时间: 2024-10-10 14:16:44 浏览: 30
Sec-WebSocket-accept是一个HTTP头字段,在WebSocket握手过程中用于验证客户端提供的挑战(Challenge)。当浏览器向服务器发起WebSocket连接请求时,会发送一个包含`Sec-WebSocket-Key`字段的头部,服务器需要根据这个字段生成一个哈希值,然后将这个哈希值作为`Sec-WebSocket-Accept`字段返回给客户端。
生成过程通常涉及将`Sec-WebSocket-Key`字段的内容转换为小写,添加特定的字符串(如"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"),再进行Base64编码,最后计算SHA-1散列值。例如,如果客户端的`Sec-WebSocket-Key`为`dGhlIHNhbXBsZSBub25jZQ==`,服务器计算出的`Sec-WebSocket-Accept`就会是`25gVUxRTZmbXNhY2hpbmciLCJlbWFpbCI6ImFkbWluQGV4YW1wbGUuY29tIiwidXNlcklkIjoiMSIsInBST1dJRGF0YSI6eyJzdHlsZXMiOlsiZGlzcGxheTogbm9uZSJdfSwiaGFzSWQiOiJodHRwczovL2VuZ2luZS5jb20vZmlsbC1maWxsLWdyb3VwL2ltcG9ydHMvZmlsbC1maWxsLWdyb3VwLmpzIiwiYXV0aFBhdGgiOiJodHRwczovL2VuZ2luZS5jb20vbGlua3MvdGhyZWVybGFyLmpzb24ifQ==`。
`Sec-WebSocket-Accept`的目的是为了保证客户端和服务器之间的安全连接,并防止中间人攻击。如果接受头的计算结果与服务器预设的不符,握手将失败,连接无法建立。