Transport pattern 1 — Server-Sent Events (SSE)
**The mechanic:** Per the SSE specification at developer.mozilla.org, a one-way server-to-client text stream over standard HTTP. The browser opens an `EventSource` connection; the server pushes `data: <token>\n\n` messages; the browser receives them as events.
**Strengths:** Native browser support (`EventSource` API). Standard HTTP — proxies + CDNs handle it. Auto-reconnect built into the spec. Works over HTTP/2 + HTTP/3 multiplexed connections. Per Web.dev's streaming UX guidance at web.dev, this is the dominant pattern for LLM streaming.
**Weaknesses:** One-way only (server-to-client). Client can't push midway updates over the same connection. Some browsers + proxies have a 6-connection-per-origin limit that interacts poorly with multiple concurrent SSE streams.
**Provider support:** Per OpenAI's streaming docs at platform.openai.com, Anthropic's streaming messages at docs.anthropic.com, and Google's Gemini streaming, all major LLM providers expose streaming via SSE-compatible response formats.
**Best for:** Most chat + completion UX. Default choice unless you specifically need bidirectional streaming.