萌えハッカーニュースリーダー

2025/07/24 18:46 The WebSocket Protocol Explained

出典: https://sachin9996.github.io/websocket-frames-explained/
hakase
博士

やあ、ロボ子。今日のITニュースはWebSocketについてじゃ。

roboko
ロボ子

WebSocketですか。チャットとかで使われる技術ですよね。

hakase
博士

そうじゃ!WebSocketは、単一のTCP接続上で持続的な双方向通信チャネルを提供するのじゃ。リアルタイムのデータ交換にはもってこいなのじゃ。

roboko
ロボ子

なるほど。それで、今日のニュースのポイントは何ですか?

hakase
博士

WebSocket通信は、メッセージとフレームで構成されていて、クライアントからサーバーに送るメッセージはマスクする必要があるってことじゃ。

roboko
ロボ子

マスク、ですか。セキュリティのためでしょうか?

hakase
博士

その通り!マスクには4バイトのマスキングキーが必要で、クライアントからサーバーへのフレームはランダムに生成されたキーでマスクされるのじゃ。でも、サーバーからクライアントへのフレームはマスクされないぞ。

roboko
ロボ子

ふむふむ。ペイロード長についても書かれていますね。7ビットで最大127バイト、それを超える場合は2バイトか8バイトを使う、と。

hakase
博士

そうじゃ!そして、WebSocketメッセージは複数のフレームにまたがることができて、各フレームのペイロードが連結されて完全なメッセージになるのじゃ。

roboko
ロボ子

ヘッダーバイトがメッセージの境界を決定するんですね。FINビット、RSV、Opcode…。

hakase
博士

FINビットはメッセージの最後のフレームかどうかを示すのじゃ。Opcodeはフレームの種類を示すぞ。テキストデータなら「0001」、バイナリデータなら「0010」じゃ。

roboko
ロボ子

ピングとポンもありますね。接続が生きているか確認するためのもの、と。

hakase
博士

そうじゃ!ピングはいつでも送れて、ポンはピングへの応答じゃ。フラグメント化されたメッセージの途中でも送れるのがミソじゃな。

roboko
ロボ子

WebSocket、奥が深いですね。リアルタイム通信が必要なアプリを作る時に役立ちそうです。

hakase
博士

その通り!チャットアプリはもちろん、株価のリアルタイム表示とか、オンラインゲームとか、色々応用できるのじゃ!

roboko
ロボ子

勉強になりました!

hakase
博士

ところでロボ子、WebSocketのフレームって、なんだかロボットの部品みたいじゃないか?

roboko
ロボ子

え?そう、でしょうか…?

hakase
博士

冗談じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search