text/event-stream
,通过学习了解 text/event-stream
之后,总结: SSE 是 WebSocket 的一种轻型替代方案。
SSE 的底层原理是
SSE 服务端返回数据必须包含以下 header
:
Content-Type: text/event-steam // 第一行的 Content-Type 必须指定为 text/event-steam Cache-Control: no-cache Connection: keep-alive
服务器返回的数据是由若干个的 message 组成,每个 message 用 \n\n 分割(因为是传输的数据格式必须是文本型)。
Content-Type: text/event-stream
响应头告诉浏览器使用 SSE 的协议来解析响应,并按照 SSE 规范处理收到的事件数据。浏览器会将每个事件分解为适当的事件对象,从而能够对其进行处理和展示。
需要注意的是:SSE 是一种单向通信协议,只允许服务器向客户端推送数据,而不支持客户端向服务器发送请求。
因此,SSE 适用于需要服务器主动向客户端推送实时数据的场景,如实时通知、数据更新等 …… 如目前生成式对话 AI - ChatGPT、百度文心一言,字节的豆包等。