If you mean HTTP SSE, it stands for HTTP Server-Sent Events (SSE).
It is a way for a server to continuously send updates to a client over a normal HTTP connection.
Normal HTTP
Client ── request ──> Server
Client <─ response ── Server
connection endsSSE
Client ── request ──> Server
Client <──── event 1 ── Server
Client <──── event 2 ── Server
Client <──── event 3 ── Server
Client <──── event 4 ── Server
connection stays openFor example, a live notification system:
Server
│
├── "New message"
↓
Browser
│
├── "Someone liked your post"
↓
Browser
│
├── "New follower"
↓
BrowserSSE vs WebSocket
The important difference is direction:
SSE:
Server ──────────> Client
one-way
WebSocket:
Server <─────────> Client
two-wayWith SSE, the client doesn’t send messages back through the SSE connection. It normally uses regular HTTP requests for that.
Example SSE endpoint
Server:
app.get("/events", (req, res) => {
res.setHeader("Content-Type", "text/event-stream");
res.setHeader("Cache-Control", "no-cache");
res.write(`data: Hello\n\n`);
});Client:
const events = new EventSource("/events");
events.onmessage = (event) => {
console.log(event.data);
};SSE vs Streamable HTTP
They’re related, but not the same thing.
SSE
└── HTTP mechanism for server → client event streams
Streamable HTTP
└── HTTP transport approach that can support streaming
and is used by MCPSo if you’re learning MCP, you may encounter SSE as an older MCP HTTP transport approach, while Streamable HTTP is the newer MCP transport approach.
Mental model:
SSE = “Keep an HTTP connection open so the server can push events to me.”
WebSocket = “Keep a connection open so both sides can communicate.”