WebSocket
サーバーとクライアント間で全二重(双方向)の持続的な通信チャネルを確立するプロトコル。チャット・リアルタイム通知・ゲームなどHTTPのリクエスト/レスポンス型では実現しにくい用途に使われる。
WebSocketとは?
WebSocket(RFC 6455)は、クライアントとサーバー間で持続的な全二重通信チャネルを確立するプロトコルです。通常のHTTPはクライアントからリクエストを送らないとサーバーから返答が来ませんが、WebSocketではサーバーから任意のタイミングでデータをプッシュできます。
HTTPとWebSocketの比較
| 項目 | HTTP | WebSocket |
|---|---|---|
| 通信方向 | 一方向(クライアント起点) | 全二重(双方向) |
| 接続 | リクエストごとに接続/切断 | 持続的な接続を維持 |
| オーバーヘッド | ヘッダーが毎回発生 | 接続後は小さいフレームのみ |
| プロトコル | http:// / https:// | ws:// / wss:// |
WebSocketのハンドシェイク
WebSocketはHTTPアップグレードリクエストで開始します:
GET /chat HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: xxxxxx==
主なユースケース
- チャット・メッセージング: LINEやSlack型のリアルタイムメッセージ
- ライブ通知: 注文状況・株価・スポーツスコアの更新
- オンラインゲーム: 低レイテンシが求められるマルチプレイヤーゲーム
- コラボレーションツール: Google DocsやFigmaのリアルタイム共同編集
まとめ
リアルタイム性が必要な場合はWebSocketが第一選択肢ですが、単方向プッシュで良ければ**Server-Sent Events(SSE)**が実装がシンプルです。
関連する用語 (ネットワーク用語辞典)
全37件を見るリバースプロキシ
クライアントとWebサーバーの間に配置され、クライアントのリクエストを代理で受け取るサーバー。SSL終端・ロードバランシング・キャッシュ・セキュリティ強化に活用される。
ポート番号: 3389 (RDP) とリモートワークのリスク
Windowsのリモートデスクトップ接続(RDP)で使用されるポート3389と、絶対にやってはいけない公開設定について。
IT用語: TCPとUDPの違い|信頼性 vs 速度のトレードオフ
接続確立・再送制御があるTCPと高速だが信頼性のないUDPの違いと使い分けを解説。
NAT(ネットワークアドレス変換)
プライベートIPアドレスとパブリックIPアドレスを相互に変換する技術。IPv4アドレスの枯渇を緩和し、宅内機器が1つのグローバルIPで同時にインターネットに接続できる。
ポート番号: 443 (HTTPS) とは
安全なWeb閲覧を支えるポート443とHTTPS通信、SSL/TLS証明書の役割について。
ポート番号: 53 (DNS) とネットワークの仕組み
「インターネットの電話帳」と呼ばれるDNSとポート53の役割、トラブル時の切り分け方を解説。