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件を見るHTTP/2
HTTP/1.1を改善した次世代WebプロトコルでRFC 7540として標準化。ヘッダー圧縮・多重化・サーバープッシュにより、Webページの読み込み速度を大幅に改善する。
レイテンシ(遅延)
データが送信元から送信先に到達するまでの時間。ミリ秒(ms)で計測し、ゲーム・ビデオ会議・金融取引など即時性が求められるアプリで重要な指標となる。帯域幅とは別の概念。
ポート番号: 53 (DNS) とネットワークの仕組み
「インターネットの電話帳」と呼ばれるDNSとポート53の役割、トラブル時の切り分け方を解説。
IT用語: MACアドレス (Media Access Control address) とは
ネットワーク機器に割り当てられた「一生変わらない製造番号」。IPアドレスとの違いを解説。
帯域幅(Bandwidth)
ネットワーク回線が単位時間あたりに転送できるデータ量の最大値。bps(ビット毎秒)で表し、実際のスループットは帯域幅の50〜80%程度になることが多い。
ポート番号: 3389 (RDP) とリモートワークのリスク
Windowsのリモートデスクトップ接続(RDP)で使用されるポート3389と、絶対にやってはいけない公開設定について。