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 流式返回,直接开箱即用。
相关推荐
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
XUEYUAN52123 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
CHENKONG_CK3 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
z落落3 天前
C#UDP+串口服务端+UDP 客户端(含 CRC16 校验)
网络·网络协议·udp
曼巴UE53 天前
UE5 客户端 需要的网络同步概念总结(3 )-事件同步 RPC 以及三种调用方式
网络·c++·网络协议·学习·rpc·ue5
captain3763 天前
HTTP(2)
java·网络·http·java-ee
开开心心就好3 天前
安卓手写文字生成工具,多种纸张一直免费
网络·网络协议·tcp/ip·leetcode·智能手机·电脑·模拟退火算法
hey you~3 天前
云客服SDK怎么接入网站和小程序?超详细接入步骤
websocket·小程序开发·api对接·企业通信·云客服sdk
比兔代理3 天前
正向代理与反向代理技术辨析,为什么代理 IP 属于正向代理
服务器·网络·http·ip
K成长日志4 天前
DALI协议-Part209-颜色控制
物联网·网络协议·iot·智能照明·智能建筑·dali