SSE(サーバー送信イベント)
Server-Sent Events/さーばーそうしんいべんと
ひとことで言うと
つないだままのHTTPで、サーバーから一方向に新着データを流し続ける仕組みです。
📖 もうちょい詳しく
何が新しいの?
ふつうのWeb通信は、画面の側が「ちょうだい」とお願いして、サーバーが一度だけ返して終わりです。新しい情報があるか何度も聞きに行くのは手間で、無駄も多くなります。SSE(サーバー送信イベント)は、いちど通信をつないだら、そのままサーバーから新着を流し続けてくれる仕組みです。
どうやって動いてるの?
画面の側は最初に一回だけ接続をひらき、その線をつないだままにします。サーバーは届けたい情報が出たびに、その線へ短いテキストを順番に書き込みます。中身は text/event-stream という決まった形のHTTP通信で、ふだんのWebと同じ土台の上を流れます。つまり特別な別系統ではなく、HTTPの応答を「終わらせずに少しずつ書き続ける」やり方です。
何ができるの?
株価やスポーツの速報、通知バッジの更新、AIの回答が一文字ずつ出てくる表示などに向いています。サーバーから人へ「お知らせを送りっぱなしにしたい」場面で力を発揮します。逆に、人からサーバーへひんぱんに送り返す用途には不向きです。
🌱 身近なたとえ
ラジオの実況中継で例えると分かりやすいです。あなたは周波数を合わせて(接続して)、あとは黙って聞いているだけです。新しい出来事が起きるたび、放送局(サーバー)が一方的に声を流してくれます。あなたから放送局へ話しかける線はありません。SSEもこの「聞く一方」の形に近いです。
✅ まず覚えるポイント
- サーバーから画面への一方向だけの送信です
- いちどつないだ接続を切らずに使い続けます
- 中身はふつうのHTTPで、特別な別プロトコルではありません
- 速報・通知・AIの逐次表示など「流しっぱなし」に向きます
- 切れても自動で再接続してくれる仕組みが備わっています
- ブラウザ側は
EventSourceという機能で簡単に受け取れます
🧭 よくある勘違い
WebSocketと同じもの?
似ていますが別物です。WebSocketは画面とサーバーが双方向にやり取りできる「電話」のような線です。SSEはサーバーから画面への一方向だけで、その代わり仕組みがシンプルで、ふつうのHTTPの上で動きます。送り返しがいらないなら、SSEのほうが手軽なことが多いです。
何度も聞きに行くポーリングと何が違うの?
ポーリングは画面の側が「もう更新ある?」と一定間隔で聞き直す方式です。SSEは聞き直さず、サーバー側が新着のたびに勝手に押し込みます。無駄な問い合わせが減り、新着が届くまでの遅れも小さくなりやすいです。
スマホのプッシュ通知のこと?
別の話です。SSEはWebページを開いている間だけ届く仕組みで、ページを閉じると止まります。アプリを閉じていても届くスマホの通知とは、土台も役割もちがいます。
🧩 関連して覚えると楽な言葉
- WebSocket: 画面とサーバーが双方向にやり取りできる、つなぎっぱなしの通信
- HTTP: Webページのやり取りに使う基本ルール。SSEもこの上で動きます
- ポーリング: 一定間隔で「更新ある?」と聞きに行く、SSE以前のやり方
- プッシュ通知: アプリを閉じていても届く、端末への一方向のお知らせ
🏁 ひとことでまとめ
接続を切らないHTTPを使って、サーバーが新着を一方向に流し続けるのがSSEです。送り返しのいらない「お知らせ専用」と覚えておくと迷いません。
TERM SEARCH
ほかの用語を調べる
検索ボックスを準備中…