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件を見るIT用語: ICMP(制御メッセージプロトコル)とは|pingの仕組み
pingやtracerouteの裏側で動くICMPの役割と、ネットワーク診断での使い方を解説。
DNSレコード種別(A・CNAME・MX・TXT等)
ドメイン名と各種情報を対応付けるDNSのレコード形式。Aレコード(IPアドレス)・CNAMEレコード(別名)・MXレコード(メールサーバー)・TXTレコード(任意テキスト)などがある。
HTTP/3(QUIC)
TCPの代わりにQUICプロトコル(UDPベース)を使う次世代Webプロトコル。Head-of-Line Blockingを解消し、モバイル環境やパケットロスが多い環境でHTTP/2より優れたパフォーマンスを発揮する。
IT用語: L2スイッチ・L3スイッチとは|ルーターとの違い
MACアドレスで転送するL2スイッチとIPアドレスでルーティングもできるL3スイッチの違いを解説。
OSI参照モデル(7階層モデル)
ネットワーク通信を7つの階層に分けて標準化したモデル。物理・データリンク・ネットワーク・トランスポート・セッション・プレゼンテーション・アプリケーション層からなる。
ポート番号: 80 (HTTP) とは
誰もが知るWeb通信の基礎、ポート80(HTTP)の役割と、HTTPS(443)へのリダイレクトの仕組み。