読み方 : サーバそうしんイベント

サーバ送信イベント【SSE】Server-Sent Events

概要

サーバ送信イベントとは、Webサーバから利用者のWebブラウザへ、更新情報を一方向に送り続けるための仕組み。ブラウザが最初に接続を確立すると、その接続を維持したまま、サーバ側で新しいデータが発生したタイミングで順次送信できる。既存のHTTPプロトコルの上にそのまま実装される。
サーバ送信イベントのイメージ画像

通常のHTTP通信では、ブラウザがサーバへ要求を送り、サーバがそれに応答した時点で一往復のやり取りが完結する。サーバ側に新しい情報が生まれても、ブラウザから次の要求がない限り送信できない。

サーバ送信イベントでは、一度接続を開いておけば、サーバは要求を待たずに任意のタイミングでブラウザへデータを発信できる。通信内容は「text/event-stream」というMIMEタイプのテキストデータとして送られ、複数のデータは空行で区切られる。

ブラウザ側では、「EventSource」というJavaScriptの標準機能を使って接続を開始し、受信したデータをイベントとして扱う。イベントにはデータの内容を示す「data」のほか、種類を示す「event」や識別番号を示す「id」などの項目を設定できる。接続が切断された場合はブラウザが自動的に再接続を試み、「Last-Event-ID」という情報をHTTPリクエストでサーバへ通知することで、途切れた続きからデータを受け取ることも可能である。

データの配信はサーバから利用者側への一方向に限られ、利用者側からサーバへ送る場合は通常のHTTPリクエストなどを別途利用する。この点で、双方向の通信を行う類似技術のWebSocketとは性質が異なる。株価やニュースの更新、処理の進捗通知、チャットの回答が少しずつ表示される仕組みなど、サーバ側で生じた変化を画面に伝えたい場面で利用される。

(2026.9.25更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。