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 流式返回,直接开箱即用。
相关推荐
VidDown3 小时前
24fps 转 25fps 不只是改个数字:帧率转换、PAL/NTSC 与音频补偿
python·网络协议·音视频·视频编解码·视频
80s7777 小时前
动态IP是什么,动态IP的应用场景有哪些?
网络·网络协议·tcp/ip
ITxiaobing20237 小时前
IP 库与 AppsFlyer 国家/地区数据不一致,如何系统地对账?
数据库·网络协议·tcp/ip
是个西兰花8 小时前
https 协议原理
网络协议·http·https
ab1237689 小时前
Spring WebSocket(STOMP)
笔记·websocket·springboot·stomp
xixiaoyunya10 小时前
监控网页插件异常:用 HTTP 探针做第三方依赖的“外视”监测
网络·网络协议·http
AI备忘录11 小时前
(二十五)华为华三锐捷迈普思科 ERPS 环网保护配置命令(G.8032 五厂商对照)
运维·服务器·网络·网络协议·华为
事圆则缓12 小时前
HTTP 请求是怎么走的:从 Android 页面到服务端响应
android·网络协议·http
0+11112 小时前
Linux --HTTPS协议原理
网络协议·http·https
hellojackjiang201112 小时前
IM聊天不掉线?生产级WebSocket断线重连、心跳保活实战
websocket·网络协议·网络编程·html5·即时通讯·im