generated at
WebSocket Opening Handshake
WebSocketのコネクションを確立するための最初のやりとり
一往復
レスポンスを受け取ると、コネクションが確立され、双方向通信が可能になる


クライアントからHTTPリクエストを送る
request
GET /chat HTTP/1.1 Host: example.com Upgrade: websocket ┐ Connection: upgrade ┘upgrade Sec-WebSocket-Version: 13 ┐ Sec-WebSocket-Key: E4WSEcseoWr4csPLS2QJHA== ┘ versionの指定 Sec-WebSocket-Protocol: chat, superchat
HTTPで来たけど、「これはWebSocketだぜ」ってことをサーバーに伝える
Sec-WebSocket-Version
現時点では13固定らしい
サーバーがこのバージョンに対応してなければコネクションを切断する
Sec-WebSocket-Key
特定のクライアントとのコネクションの確立を示すために使う
ランダムな16byteの値をBase64でエンコードしたもの
Sec-WebSocket-Protocol
オプション。指定しなくてもいい
どういう形式を使うかを指定する
よくわからんmrsekut


それに対するレスポンス
response
HTTP/1.1 101 OK Upgrade: websocket Connection: upgrade Sec-WebSocket-Accept: 7eQChgCtQMnVILefJAO6dK5JwPc= Sec-WebSocket-Protocol: chat
Sec-WebSocket-Accept
リクエストの Sec-WebSocket-Key を元にして生成する
通信確立を検証するために用いる
Sec-WebSocket-Protocol
リクエストの Sec-WebSocket-Protocol から一つを選んで返す



参考