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.
The client sends a Sec-WebSocket-Key header. This is in addition. This is to Upgrade headers. This Sec-WebSocket-Key header is containing base64-encoded random bytes. The server replies with a hash of the key in the Sec-WebSocket-Accept header. This is in addition. This is to Upgrade headers.