Como funciona

SSE (Server-Sent Events) é um padrão HTTP em que o servidor mantém uma conexão aberta e envia mensagens ao cliente conforme elas são geradas. O cliente usa a API EventSource do navegador (ou lê o stream em outras linguagens) e recebe eventos em tempo real.

Diferente do WebSocket, que é bidirecional, o SSE é unidirecional: só o servidor envia. Isso simplifica a implementação e funciona sobre HTTP normal, passando por proxies e firewalls com menos problemas.

Exemplo prático

Um servidor envia eventos SSE assim:

Terminal
curl -N https://api.exemplo.com/stream \
  -H "Accept: text/event-stream"

A resposta chega em blocos com o prefixo data::

data: {"token": "Olá"}

data: {"token": " mundo"}

data: [DONE]

O cliente lê cada linha e atualiza a interface. APIs de chat (OpenAI, Anthropic) usam SSE para streaming de respostas.

Para que serve

SSE serve para casos em que o servidor precisa empurrar dados ao cliente de forma contínua: streaming de respostas de modelos de IA, notificações, logs em tempo real e progresso de tarefas longas. É a base técnica do streaming de resposta em muitos produtos de IA, por ser simples e compatível com HTTP.