SSE、WebSocket、HTTP

一、先大白话讲懂:SSE、WebSocket、HTTP

1. SSE (Server-Sent Events 服务端推送)

  • 底层协议 :依然是 HTTP/HTTPS
  • 单向:只能 服务端 → 客户端 推数据
  • 场景:大模型打字机流式输出、消息通知、实时日志、大屏实时数据
  • 特点:
    1. 一次 HTTP 连接建立,长连接,服务端持续发片段数据
    2. 浏览器原生支持,不用额外协议
  1. 自动断线重连
  2. 只能服务端发,客户端不能实时发消息

2. WebSocket

  • 底层协议独立 WS / WSS 协议(不是HTTP)
  • 双向:客户端 ↔ 服务端 双向实时通信
  • 场景:聊天室、实时对战、协同编辑、高频双向互动AI对话
  • 特点:
    1. 握手阶段借用HTTP,升级后完全脱离HTTP
    2. 真正全双工,两边随时发消息
    3. 开销极小,适合高频交互
    4. 需要自己处理重连、心跳、断连

3. 普通 HTTP

  • 一问一答:客户端发请求 → 服务端一次性返回结果 → 连接断开
  • 短连接,无状态
  • 大模型普通问答、接口CRUD全是这个

二、核心区别(面试必背)

对比维度 SSE WebSocket 普通HTTP
协议 基于HTTP 独立WS协议 HTTP
通信方向 单向(服务端推) 全双工双向 单向一问一答
连接类型 长连接 长连接 短连接
适用场景 AI流式输出、公告、日志 聊天、实时互动、协同 常规业务接口
浏览器支持 原生支持 原生支持 全部支持
开发成本 偏高(心跳、断连) 最低
网络穿透 友好,走80/443 部分防火墙拦截WS端口 最友好

关键一句话区分

  • 只需要服务端源源不断吐内容(AI打字机) → 用 SSE
  • 需要两边实时互发消息(聊天、互动) → 用 WebSocket
  • 普通查改增删、一次性返回 → 用 HTTP

三、AI 场景对应(你面试要用)

  1. 大模型流式回答、RAG流式输出
    ✅ 行业主流:SSE
    理由:
  • 只需要后端一段一段发文字,前端展示打字机
  • 开发简单、基于HTTP、运维友好、不用维护心跳
  1. AI多轮实时聊天、带实时打断、实时编辑
    ✅ 才会用:WebSocket

四、企业前后端交互 主流选型(工作真实情况)

1. 90% 常规业务接口

HTTP + JSON

  • 所有CRUD、登录、订单、用户、权限、后台管理
  • 同步接口,一次性返回

2. 需要服务端实时推送 / AI流式

SSE(首选)

  • SpringBoot 原生支持、SpringAI / LangChain4j 流式默认适配SSE

3. 强双向实时场景

WebSocket

  • IM聊天、客服系统、在线协作、实时大屏操控

4. 高并发消息队列异步

MQ(RabbitMQ/RocketMQ/Kafka)

  • 解耦、削峰、异步任务,不属于前端交互

五、面试标准背诵版(直接背)

  1. SSE

    基于HTTP的服务端单向长推送技术,长连接,服务端可持续向客户端推送数据流,适合大模型流式输出、系统通知等单向实时场景,开发简单、兼容性好。

  2. WebSocket

    是独立的全双工通信协议,握手后脱离HTTP,客户端与服务端可互相主动发消息,适合聊天、实时协同、高频双向交互场景。

  3. 核心区别

    SSE 基于HTTP、单向推送、轻量化;WebSocket 是独立协议、双向全双工、适合强实时互动。

  4. 日常选型

    常规业务使用HTTP ;AI流式问答采用SSE ;双向实时聊天采用WebSocket


六、补充:SpringBoot 对应技术

  • SSE:SseEmitter
  • WebSocket:@ServerEndpoint / Spring WebSocket
  • AI流式:SpringAI、LangChain4j 都封装好了 SSE 流式返回,直接开箱即用。
相关推荐
哼?~2 小时前
HTTPS
网络协议
汤愈韬2 小时前
防火墙双机热备
网络协议·网络安全·security
S1998_1997111609•X2 小时前
REA|-/GEns.l?sfa~IP|ssh&l-linux*^-bci.com
网络协议·百度·ssh
摸鱼仙人~2 小时前
HTTP状态码全量详解(定义+核心区别+业务场景+前端常见诱因+排查方案+工程处理)
前端·网络协议·http
希望永不加班3 小时前
SpringBoot 安全加固:HTTPS 配置与 HTTP/2
网络·网络协议·安全·http·https
IpdataCloud15 小时前
IPv6商用数据的IP离线库能解决哪些业务问题?适用场景与接入指南
网络·网络协议·tcp/ip
古城小栈18 小时前
hey 你好 “压测”
http·golang·开源
思麟呀20 小时前
Select多路转接
linux·网络·c++·网络协议·http
wl851121 小时前
SAP CPI 教程003 如何抓取Http适配器异常信息
网络·网络协议·http