仕組みを知る

WebSocketとは|つないだまま双方向に送れるWeb通信

WebSocketは、ブラウザとサーバーの接続を開いたままにし、双方からデータを送れる通信の仕組みです。HTTPとの違い、チャットや通知で使われる理由、wss、認証、再接続の考え方を順に見ていきます。

WebSocketとは|つないだまま双方向に送れるWeb通信

30秒でわかる答え

WebSocketとは、ブラウザとサーバーの接続を開いたままにし、双方向にデータを送れる通信の仕組みです。

TERM PRIMER

先に知っておく言葉

WebSocket
サーバーとブラウザをつなぎっぱなしにして、リアルタイムにやり取りするしくみです。
リアルタイム通信
チャットやライブ配信のように、ほぼその場で情報を届ける通信です。
HTTP
Webで「このページをください」というお願いと、データや結果を伝える返事をやり取りするためのルールです。
wss
WebSocketの通信を暗号化して行う方式です。
サーバー
データを保存したり、ほかの端末に届けたりする役割を持つコンピューターです。

HTTPとの違いと使い分け

HTTPは、ブラウザからサーバーへお願いを出し、サーバーが返事を返す形でよく使われます。

ページを開く、画像を取る、フォームを送る、APIからデータを受け取る。こうした場面では、HTTPのお願いと返事の形が向いています。一方で、サーバー側から「今すぐ新しい情報があります」と知らせたい場面では、普通のHTTPだけだと工夫が必要になります。

WebSocketは、最初にHTTPから接続を始め、その後WebSocketの通信へ切り替わります。接続が開いている間は、ブラウザとサーバーが双方向にメッセージを送れます。

見る点HTTPの基本形WebSocket
通信の形お願いと返事接続を保って双方向
得意な場面ページ表示、API取得、フォーム送信チャット、通知、共同編集、リアルタイム更新
サーバーからの通知工夫が必要接続中なら送りやすい
注意点リクエストの数やタイミング接続の維持、再接続、認証

画面でWebSocketを確認する場所

WebSocketは、普通の画面上に名前が出ることは多くありません。

開発者向けツールのネットワーク画面で、WS や wss:// の通信として見える場合があります。チャットや管理画面で、ページを再読み込みしなくても情報が更新されるとき、裏側でWebSocketのような仕組みが動いている可能性があります。

利用者として確認するなら、画面のふるまいを見るのが入口です。新着がすぐ出るか、オフラインになったときにどう表示されるか、再接続後に情報が戻るか、通知だけは届くか。開発者として見るなら、接続、送受信、切断、再接続、認証、エラー表示を確認します。

イト

リアルタイム通信の部屋に、閉じない扉があったよね

ユイ

毎回問い合わせなくても、サーバーからすぐ知らせてもらえる感じでした

ピコ

その代表的な仕組みの一つがWebSocketだよ

Webページでは、ブラウザがサーバーへリクエストを送り、サーバーが返事を返すHTTPの形がよく使われます。WebSocketでは、最初に接続を作ったあと、そのつながりを保ち、ブラウザからもサーバーからもデータを送れるようにします。チャット、通知、共同編集、リアルタイムの管理画面などで使われることがあります。

第80話「WebSocketはどんな扉?」では、第79話の二方向の光の道に続く、開いたままの連絡口を見ます。以下では、その物語のたとえを実際のWebの用語に戻しながら、WebSocketがどんな場面で役立つのか、HTTPとの違いは何か、何に注意するのかを順に見ていきます。

開いたままの連絡口にたとえると

そもそも近い時間で状態をそろえる考え方は、リアルタイム通信とは で先に整理できます。

たとえばチャットでは、自分がメッセージを送るだけでなく、相手からの新しいメッセージもすぐ受け取りたいです。毎回「新しいメッセージはありますか」と聞き続ける方法もありますが、WebSocketでは接続を開いたままにして、必要なタイミングで双方がデータを送れるようにします。

ラボのたとえでは、受付に毎回並び直すのではなく、開いたままの連絡口を作るイメージです。連絡口が開いている間は、こちらから札を送ることも、サーバー側から札を返すこともできます。

イトとユイとピコが、開いたままの連絡口を通る双方向の光を見ている
WebSocketは、接続を開いたままにして、ブラウザとサーバーの双方からデータを送れる通信です。

WebSocketの通信の流れ

WebSocketは、最初からいきなり別世界の通信を始めるわけではありません。入口では、ブラウザがサーバーへ「WebSocketとして接続したい」と伝えます。サーバーがそれを受け入れると、接続の使い方が切り替わり、開いたままの連絡口として扱えるようになります。

流れを短くすると、次のようになります。

  1. ブラウザが接続を始める
  2. HTTPの入口でWebSocketへ切り替えたいと伝える
  3. サーバーが受け入れる
  4. 接続を開いたままにする
  5. ブラウザとサーバーが必要なタイミングで送受信する
  6. 切れたら再接続や取り逃した情報の確認をする

この流れを持っておくと、「WebSocketはチャット専用の機能」といった誤解を避けやすくなります。WebSocketは、チャットそのものではなく、接続を開いたまま双方向にメッセージを運びやすくする通信の道具です。チャット画面では、その上に送信、保存、既読、通知、履歴取得などの別の仕組みが重なります。送信・既読・通知の流れは、メッセージの仕組み で確認できます。

WebSocketが使われる場面

WebSocketは、短い遅れで更新したい画面で使われることがあります。

  • チャットの新着メッセージ
  • オンラインゲームや共同編集の状態更新
  • 管理画面のリアルタイムな数値
  • ライブ配信のコメントやリアクション
  • 通知やアラートの即時表示
  • サポートチャットや取引画面の更新

ただし、リアルタイム通信ならいつもWebSocketというわけではありません。プッシュ通知、ポーリング、Server-Sent Events、UDP系の通信など、目的や環境によって別の方法が向いている場合もあります。WebSocketは、その中の一つの選択肢です。

マコト

リアルタイム通信という目的があって、その方法の一つがWebSocketなんだね

ピコ

そう。目的と仕組みを分けると、言葉が混ざりにくいよ

wsとwss

WebSocketのURLでは、ws:// や wss:// という形を見ることがあります。

ws:// はWebSocketの通信を表す入口です。wss:// は、暗号化された安全な接続で使われるWebSocketです。Webページで http:// と https:// が分かれるように、WebSocketでも安全な通信では wss:// を使うことが多いです。

実際のサービスでは、ログイン状態や権限も大切です。接続できる人、送ってよい内容、受け取ってよい相手を間違えないようにする必要があります。WebSocketは接続を開いたままにするため、認証、権限、切断時の扱いを設計することが重要です。

切断と再接続の注意点

WebSocketの接続は、ずっと安定して続くとは限りません。

スマホがスリープする、Wi-Fiが切れる、電車で移動して回線が変わる、サーバーが再起動する、アプリを閉じる。こうした場面では接続が切れることがあります。そのため、WebSocketを使うアプリでは、切れたときに再接続したり、取り逃した更新を取り直したりする工夫が必要になります。

チャットで一瞬オフラインになったあと、未読のメッセージがまとめて届くことがあります。これは、接続中に届く情報と、あとから取り直す情報を組み合わせている場合があります。リアルタイム通信は「つながっている間だけ」ではなく、「切れたあとにどう戻るか」も大事です。

マコトとユイとピコが、途切れた連絡口と再接続の光の橋を確認している
WebSocketの接続は切れることがあるため、再接続や取り逃した情報の扱いも大切です。

自分の言葉で説明してみよう

チャットや共同編集の画面を見ながら、WebSocketらしい動きを探します。見るだけで終わらせず、「画面では何が起きていて、裏側ではどんな通信が必要か」を一文で言えるようにします。

  1. ページを更新しなくても新しい情報が出るか見る
  2. オフラインにしたとき、画面がどう変わるか見る
  3. 再接続したあと、抜けた情報が戻るか確認する
  4. 開発者向けツールで WS や wss:// があるか見る
  5. HTTPのリクエストと、開いたままの通信を分けて考える

WebSocketとは、____________通信です。
HTTPとの違いは、____________です。
チャットで使う場合も、保存や通知などは____________と一緒に動きます。

答えの例は、「接続を開いたまま双方向に送れる」「お願いと返事を毎回作る形だけではなく、つながりを保てる」「別の仕組み」です。言葉を丸暗記するより、画面の動きと通信の役割を対応させて説明できるかを確認してください。

WebSocketのミニクイズ

Q1. WebSocketとは何ですか?

ブラウザとサーバーの接続を開いたままにし、双方向にデータを送れる通信の仕組みです。

Q2. WebSocketはHTTPとまったく別の世界ですか?

最初の接続はHTTPから始まり、その後WebSocketの通信へ切り替わります。役割は違いますが、Webの通信の流れの中で使われます。

Q3. WebSocketを使えば、切断の心配はなくなりますか?

なくなりません。通信環境や端末の状態で切れることがあるため、再接続や取り逃した情報の扱いが必要になります。

LAB WHITEBOARD

自分の言葉で説明してみよう

「WebSocketがブラウザとサーバーの接続を開いたまま双方向に送る仕組みであること、HTTPとの違い、使われる場面と注意点を説明できるようになる。」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。

編集部の実践ガイド

ウイルス対策ソフトの考え方と選び方

乗っ取りやフィッシングへの備えを、パスワード管理と合わせて整理します。

VPNは必要か+初心者向けの選び方

外出先のWi-Fiでログインする場面では、VPNの要否も確認できます。