Что такое Server-Sent Events (SSE)?

Server-Sent Events (SSE) — это механизм, при котором сервер держит одно долгоживущее HTTP-соединение и по мере появления данных отправляет в браузер поток текстовых событий. Передача идёт строго в одну сторону: от сервера к клиенту.

SSE расшифровывается как Server-Sent Events — «события, отправляемые сервером». Это способ доставлять на уже открытую страницу свежие данные без перезагрузки и без бесконечных запросов: новую строку ленты, изменение статуса заказа, кусок ответа ИИ-ассистента. Бизнесу он нужен там, где важна мгновенная реакция интерфейса: пользователь видит результат сразу, дольше остаётся на странице и чаще доходит до целевого действия.

Как работает Server-Sent Events

Клиент создаёт в JavaScript объект EventSource и указывает адрес эндпоинта. Браузер открывает обычный GET-запрос к серверу с заголовком Accept: text/event-stream, а тот отвечает Content-Type: text/event-stream, Cache-Control: no-cache, Connection: keep-alive — и соединение не закрывает. Дальше он просто дописывает в ответ текстовые блоки, разделённые пустой строкой:

  • data: — полезная нагрузка события, чаще всего JSON или строка;
  • event: — имя события, на которое подписывается клиент через addEventListener;
  • id: — идентификатор события, по нему поток продолжится после обрыва;
  • retry: — через сколько миллисекунд переподключаться.

Разбирать формат браузеру не нужно вручную: он делает это сам, вызывает обработчик и обновляет DOM уже средствами вашего JS-кода. Ключевые плюсы — автоматическое переподключение с отправкой заголовка Last-Event-ID, обычный HTTP без отдельных протоколов и портов, читаемый текстовый формат, который легко проверить прямо из консоли.

Зачем SSE нужен бизнесу

Главный сценарий 2026 года — стриминг ответов ИИ: чат-ассистент, подбор товара, генерация текста или сводки отдают токены по мере появления. Пользователь видит, что работа идёт, и не уходит со страницы, пока ждёт результат.

  • живые уведомления: заявка с формы, сообщение в чате поддержки, ответ менеджера;
  • трекинг: статус заказа, доставки, заявки на кредит, очереди на обслуживание;
  • дашборды: цены, остатки, ставки, онлайн-метрики без перезагрузки таблицы;
  • прогресс долгих задач: импорт каталога, проверка сайта, сбор отчёта.

Экономика тоже в пользу SSE: одно открытое соединение дешевле, чем частый опрос сервера (polling) каждые несколько секунд. Вы экономите трафик, процессорное время и батарею мобильных устройств, а интерфейс ощущается быстрее — а это напрямую влияет на вовлечённость и конверсию.

Как применять SSE на практике

Отдавайте поток с отдельного эндпоинта, а не через ту же страницу, что рендерится на сервере. Обязательно проверьте буферизацию: ни прокси, ни CDN, ни промежуточный кэш не должны накапливать ответ, иначе события придут одной пачкой и весь эффект стрима пропадёт.

  • отключите буферизацию на уровне веб-сервера (для nginx это proxy_buffering off и заголовок X-Accel-Buffering: no);
  • добавьте heartbeat — строку-комментарий вида «: ping» раз в 15–30 секунд, чтобы соединение не считалось простаивающим;
  • следите за таймаутами прокси и балансировщика: они должны быть больше, чем время жизни потока;
  • учитывайте лимит соединений: в HTTP/1.1 браузер держит около шести соединений на домен, в HTTP/2 и HTTP/3 этого ограничения нет;
  • если потоков много, выносите их на отдельные мощности — недорогой VPS с асинхронным рантаймом держит тысячи одновременных соединений;
  • помните, что EventSource не умеет передавать собственные заголовки: для авторизации используйте cookie, токен в ссылке или fetch-стриминг.

Типичные ошибки

  • Буферизация на nginx или CDN. Самая частая причина «SSE не работает»: поток есть, но приходит целиком в конце.
  • Нет heartbeat и обработки обрыва. Соединение закрывают провайдеры и мобильные сети, а поток после этого молча умирает.
  • Дубли событий. Без полей id и Last-Event-ID при переподключении клиент получит часть данных повторно — ломаются счётчики, уведомления, аналитика.
  • Утечка соединений. Забыли вызвать close() при уходе со страницы — браузер держит поток, а сервер копит висящие подключения.
  • Попытка двустороннего обмена. SSE — односторонний канал, отправлять данные обратно через него нельзя: для этого нужен POST, fetch-стриминг или WebSocket.
  • Отсутствие проверки прав. Поток, отдающий чужие заказы или внутренние метрики без авторизации на каждом событии, — прямая утечка данных.

От WebSocket SSE отличается прежде всего простотой: там двунаправленный протокол, бинарные кадры и своя инфраструктура, здесь — обычный HTTP и встроенный реконнект. Если данные идут только от сервера, WebSocket почти всегда избыточен.

Коротко: что учесть в 2026 году

К 2026 году SSE перестал быть экзотикой: HTTP/2 и HTTP/3 сняли лимит соединений, стриминг токенов стал стандартом для ИИ-интерфейсов, а поддержка потоковых ответов появилась в большинстве серверных рантаймов и edge-платформ. Основная работа теперь не в браузерном API, а в инфраструктуре: буферизация, таймауты и авторизация. Если эти три пункта закрыты, SSE — самый дешёвый способ сделать интерфейс по-настоящему «живым».

Максим Ахтямов
Заместитель руководителя отдела разработки
Мы свяжемся с вами, ответим на интересующие вопросы и подготовим коммерческое предложение
Давайте работать
Оставьте заявку, после чего мы сможем собрать ключевые запросы, проверить позиции по ним, составить план продвижения и сделать вам предложение по продвижению сайта с гарантиями.
Ваш номер телефона *
Адрес вашего сайта
Антиспам вопрос: cколько будет 27 + 27 ?
Прикрепить список запросов
Только файлы Word, Excel, Блокнот
Оставить заявку

Смотрите другие материалы

Кластеризация ключей
Кластеризация ключей (keyword clustering) — это группировка поисковых запросов в тематические кластеры по смыслу, интенту и составу выдачи. Один кластер…
Читать подробнее
MPA — многостраничное приложение
MPA (Multi-Page Application, многостраничное приложение) — это сайт, состоящий из отдельных HTML-страниц со своими URL: сервер отдаёт готовый документ на…
Читать подробнее
2FA / MFA (многофакторная аутентификация)
2FA / MFA (Two-Factor / Multi-Factor Authentication) — вход в аккаунт, при котором одного пароля недостаточно: система запрашивает второе подтверждение…
Читать подробнее
Яндекс Метрика
Яндекс Метрика (Yandex Metrica) — бесплатная система веб-аналитики от Яндекса. Счётчик на сайте собирает данные о визитах, источниках трафика, поведении…
Читать подробнее
Альт-текст (ALT)
Альт-текст (ALT, alternative text) — текстовое описание изображения, которое задаётся в HTML-атрибуте alt тега img. Оно объясняет, что изображено на…
Читать подробнее
Вёрстка
Вёрстка (layout, markup) — это перевод дизайн-макета в код: HTML задаёт структуру и смысл блоков, а CSS — их оформление…
Читать подробнее

go to top

7 (933) 990-91-12

7 (931) 178-02-48

7 (933) 990-91-17

7 (933) 990-92-34

7 (933) 990-92-37