ユイ
チャットの画面を調べていたら、wss:// で始まる行がありました。https の打ちまちがいでしょうか
ピコ
まちがいじゃないよ。WebSocketっていう、開けたままの扉の住所なんだ
アドレスの先頭に付く wss:// は、暗号化されたWebSocketのつなぎ先を表す書き方です。暗号化なしが ws://、暗号化ありが wss://。関係は http:// と https:// と同じです。
WebSocketは、一度つないだら道を開けたままにして、ブラウザとサーバーのどちらからでも送れる通信の仕組みです。ユイが見つけたのが ws:// ではなく wss:// だったのにも、理由があります。
wssとは?ws://との違いとポート番号
2つの書き方を決めたのは、2011年に出たWebSocketの仕様書、RFC 6455です。
| 見る点 | ws:// | wss:// |
|---|---|---|
| 暗号化 | なし | あり(TLS) |
| 書かないときのポート番号 | 80 | 443 |
| 対になるWebの書き方 | http:// | https:// |
https:// のページから | ほとんどのブラウザが許さない | つなげる |
※ 1〜2行目はRFC 6455、3行目はブラウザ向けの仕様書(WebSockets Standard)、4行目はMDNの記載です。
RFC 6455は、wss で始まるつなぎ先を「secure(安全な)」と呼んでいます。https の s と同じ役目で、使う暗号化も同じTLSです。途中でのぞかれにくく、書きかえに気づけ、相手のサーバーを確かめられます。守る範囲はHTTPSと変わりません。だれがつないでよいか、だれに何を見せるかは、サービスの側が別に確かめます。
ポート番号は、同じコンピューターの中で届け先の窓口を分ける番号です(ポート番号とは)。サーバーの名前のすぐ後ろに :8443 のように書けば、別の番号も選べます。
ユイの見た行が wss:// だった理由は、4行目です。調べていたチャットは https:// のページでした。そこから ws:// へは、つながせてもらえません。
意外なのは、つながりやすさです。RFC 6455には、書かれた2011年の時点で、443番のほうが80番よりずっとつながりやすかった、とあります。安全なほうが、通りやすくもあったわけです。
では、開けたままの扉は、いつものページの通信と何が違うのでしょう。
TERM PRIMER
WebSocket|この記事に出てくる言葉
WebSocketの双方向通信とは?HTTPとの違い
イト
チャットって、何もしてないのに相手のが出てくるよね。だれが「新しいのある?」って聞いてるの
マコト
いい所に気づいたね。ふつうのページは、こっちが聞かないかぎり返事が来ないんだ
HTTPの基本の形は、ブラウザがお願いを出し、サーバーが返事を返して1回が終わります(HTTPとは)。サーバーから先に送る番はありません。
そこで昔は、新着を知るために、ブラウザが何度も聞きに行きました。ポーリングという方法です。物語の第80話でイトが試すと、0.05秒おきに聞いた6秒間で、お願いは120回。119回は「変わっていません」という返事でした。
WebSocketは、最初に1回つないだら、その道を開けたままにします。開いているあいだは、ブラウザからもサーバーからも、相手を待たずに送れます。どちらからでも送れるので、双方向通信と呼びます。同じ6秒が、道を開く1回と、知らせ1通で済みました。

| 見る点 | HTTPの基本の形 | WebSocket |
|---|---|---|
| 通信の形 | お願い1回に、返事1回 | 一度つないだら、開けたまま |
| 先に送れるのは | ブラウザだけ | ブラウザとサーバーの両方 |
| アドレスの先頭 | http://・https:// | ws://・wss:// |
| 向いている場面 | ページを開く、画像を取る、フォームを送る | チャット、ゲーム、刻々と変わる数字 |
WebSocketはHTTPの新しい版ではなく、別の決まりごとです。それなのに、つなぎ始めの一言だけはHTTPで話します。
どうやってつなぐ?最初はHTTP、返事は101
- ブラウザが、HTTPのお願いに「WebSocketへ切りかえたい」と書いて送る(
Upgrade: websocket) - サーバーが受け入れると、返事の1行目は
HTTP/1.1 101 Switching Protocolsになる - そこから同じ道の上で、どちらからでも送り合う
- 終わるときは、片方が「閉じます」の合図を送り、相手も同じ合図を返す
101は「決まりごとを切りかえます」という番号です。ページが開けたときの200ではありません。RFC 6455は、101以外の番号が返ったら切りかえは済んでいない、と決めています。
HTTPで始めるのは、Webの入口である80番と443番を、HTTPのサーバーと分け合って使うためです。WebSocketだけの新しい入口を作らずに済みます。
こうして開く扉の住所は、公開されている文書に、そのまま書いてあります。
WebSocketはどこで使われている?
RFC 6455が例に挙げるのは、チャット、ゲーム、株価の表示、何人もで同時に書きこむ編集画面です。どれも、サーバーの側で起きた変化を、すぐ画面に出したい場面です。
| どこで | 公式の文書に書いてあること |
|---|---|
| Discord | アプリやボットが出来事を受け取る入口は、暗号化したWebSocket。つなぎ先の例は wss://gateway.discord.gg/ |
| Twitch | チャットを読み書きするプログラムのつなぎ先は wss://irc-ws.chat.twitch.tv:443 |
| OBS Studio | 外のアプリから配信ソフトを動かす入口がWebSocket。「ツール」→「WebSocket サーバー設定」で、最初のポート番号は4455 |
| マインクラフト(Bedrock Edition) | /connect(/wsserver)コマンドで、指定したWebSocketサーバーへつなぐ。チートを有効にした世界でだけ使える |
※ どれも開発者向けの公式文書の記載です(2026年10月10日確認)。
Twitchの行の最後にある :443 が、ポート番号です。OBS Studioの入口は、パスワードで守るよう公式が強く勧めています。
WebSocketは運ぶ道で、チャットそのものではありません。保存、既読、通知は別の仕組みの担当です(チャットの仕組み)。画面を閉じているあいだの知らせも、プッシュ通知が受け持ちます。
画面を開いているあいだの扉なら、自分でのぞけます。
自分の画面で確かめるには?Chromeで見る手順
パソコンのChromeなら、開発者ツールでやり取りの中身まで見られます。手順はChromeの公式ドキュメントのとおりです。
- 調べたいページで F12 キーを押す(Macは Command+Option+I)
- 「ネットワーク」パネルを開き、ページを読み込み直す
- 種類のボタンから「WS」を選ぶ
- 「名前」の列でWebSocketの行を選び、「メッセージ」タブを開く
- 並んだやり取りを見る。送ったテキストは薄い緑、受け取ったテキストは白
※ 2024年7月更新の公式ドキュメントの手順です。出るのは直近の100件。記録されるのは開発者ツールを開いているあいだの通信なので、2で読み込み直します。
メッセージには、ログイン中の自分の情報が入っていることがあります。画面を写して、公開の場所に貼らないでください。
ポーリング・SSE・WebTransportとの使い分け
変化をすぐ知らせる方法は、WebSocketだけではありません。
| 仕組み | 送れる向き | 特徴 |
|---|---|---|
| ポーリング | ブラウザが聞き、サーバーが答える | 間隔が長いと遅れ、短いと空振りが増える |
| Server-Sent Events(SSE) | サーバーからブラウザへの一方向 | ニュースやSNSの新着のように、受け取るだけの更新に向く |
| WebSocket | 双方向 | 対応するブラウザとサーバーが多い |
| WebTransport | 双方向 | HTTP/3の上で動く。順番どおりでなくても、届かなくてもよい送り方を選べる |
※ 2〜4行目はMDNの説明によります。
選び方は、送る向きで決まります。受け取るだけならSSE、こちらからも送るならWebSocketです。
WebTransportは新顔で、最新のブラウザと端末でそろって使えるようになったのは2026年3月です。MDNは、多くの用途でWebSocketに置きかわっていく見込みだとしたうえで、幅広いブラウザに対応したいふつうの用途にはWebSocketを勧めています。方法の全体はリアルタイム通信とはで見渡せます。
ただ、開けたままにできるのは、道がつながっているあいだだけです。
開けたままの道が切れたら?
イト
開けたままなら、ずっとつながってるってこと?
ピコ
扉は開けておけても、そこまでの道が切れるんだ。スマホが眠ったり、電車で回線が変わったりね
切れていないかは、合図で確かめます。片方がPingという合図を送ると、相手はPongを返す決まりです。開発者ツールのメッセージ欄では、薄い黄色の行がこうした合図です。
切れたら、つなぎ直します。ここにも決まりがあります。RFC 6455は、最初のつなぎ直しを、でたらめに選んだ時間だけ待ってから始めるよう勧めています。目安は0〜5秒。失敗が続けば、待つ時間を延ばします。全員が同時につなぎ直すと、サーバーが攻撃を受けたのと同じ状態になるからです。

つなぎ直しても、切れていたあいだの知らせは自動では戻りません。届かなかったぶんを取り直すのは、アプリの仕事です。チャットで、しばらく切れたあとに未読がまとめて出てくるのが、この取り直しです。
確認クイズ:wssとWebSocketを説明できる?
Q1. wssとは何ですか?
A. 暗号化されたWebSocketのつなぎ先を表す、アドレスの先頭の書き方です。暗号化なしは ws:// で、書かないときのポート番号は wss:// が443、ws:// が80です。
Q2. WebSocketは、HTTPと何が違いますか?
A. HTTPの基本の形は、お願い1回に返事1回です。WebSocketは一度つないだ道を開けたままにして、ブラウザとサーバーのどちらからでも送れます。つなぎ始めだけはHTTPを使い、返事の番号は101です。
Q3. httpsのページから、ws:// にはつなげますか?
A. ほとんどのブラウザで、つなげません。https:// のページからは wss:// を使います。
次にwss://を見かけたら
ユイは、さっきの行をもう一度開きました。先頭は wss://。「メッセージ」タブでは、何も押していないのに、白い行が1つ増えます。むこうから届いた知らせです。
打ちまちがいではありませんでした。暗号化された、開けたままの扉です。
あなたの画面で wss:// を見かけたら、s は暗号化、その先は開けたままの道、と読んでください。むこうからの知らせを、待っているところです。
この記事について
LAB WHITEBOARD
WebSocketを一文で説明してみよう
「WebSocketが一度つないだ道を開けたまま双方向に送る仕組みであること、wss:// と ws:// の違いとポート番号、HTTPとの違い、使われる場面を説明できるようになる。」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。




