このテンプレートは、WebSocketプロトコルの通信フローを視覚的に分かりやすく表現したものです。最初のハンドシェイクからセッションのクローズまで、一連のプロセスを網羅しています。ネットワーク構成の文書化や、チーム・関係者への技術説明にご活用ください。
ハンドシェイクフェーズ(HTTP)
ハンドシェイクフェーズでは、HTTPリクエストによってプロトコルの切り替えを開始します。クライアントが接続のアップグレードを要求し、サーバーが承認すると、特定のレスポンスコードを返してWebSocketセッションが開始されます。
- HTTP GET /chat リクエスト
- Upgrade: websocket ヘッダー
- 101 Switching Protocols レスポンス
- 初期プロトコルネゴシエーション
接続の確立
ハンドシェイクが成功すると、標準的なHTTP接続が永続的なWebSocket接続へとアップグレードされます。この接続はTCP上で動作し、再接続を繰り返すことなく安定した継続的なデータ通信を実現します。
- プロトコルアップグレードの確認
- 永続的TCP接続
- 双方向チャネルの構築
- 接続アクティブ状態
通信フェーズ
通信フェーズでは、クライアントとサーバーが自由にリアルタイムでデータを交換します。この全二重通信により、双方が同時にメッセージを送信できるため、即時更新や高速データ転送が求められるアプリケーションに最適です。
- ダイレクトメッセージ交換
- サーバーレスポンス処理
- データフレーム送信
- クライアントへのブロードキャストメッセージ
接続のクローズ
クローズフェーズでは、データ損失なくセッションを安全に終了します。クライアントまたはサーバーのいずれかがクローズフレームを送信して開始し、相手が応答することでネットワークリソースが解放されます。
- クローズフレームの送信
- クローズ確認応答(ACK)
- リソースのクリーンアップ
- セッション終了