当前位置: 首页 > news >正文

SSE 流与普通 HTTP 响应的区别

1. 连接特性

特性普通 HTTP 响应SSE 流
连接持续时间一次性,请求-响应后立即关闭持久连接,保持打开状态
通信方向单向 (客户端→服务器→客户端)单向 (服务器→客户端)
数据格式完整响应体流式文本数据 (text/event-stream)

2. 数据传输方式

普通 HTTP 响应:

  • 服务器一次性返回完整响应

  • 传输完成后连接立即关闭

  • 需要客户端重新发起请求获取新数据

SSE 流:

  • 保持长连接开放

  • 服务器可以随时推送新数据

  • 数据以事件流形式分块传输

  • 自动重连机制

3. 技术实现

普通 HTTP 响应:

http

HTTP/1.1 200 OK
Content-Type: application/json{"data": "complete response"}

SSE 流:

http

HTTP/1.1 200 OK
Content-Type: text/event-stream
Connection: keep-alivedata: First message\n\n
data: Second message\n\n
event: update
data: {"time": "12:00"}\n\n

4. 前端处理方式

普通 HTTP 响应 (使用 axios):

axios.get('/api').then(response => {console.log(response.data); // 完整数据
});

SSE 流 (使用 EventSource):

const eventSource = new EventSource('/sse-endpoint');eventSource.onmessage = (event) => {console.log(event.data); // 每次收到新数据
};eventSource.onerror = (error) => {console.error('SSE error:', error);
};

5. 适用场景

普通 HTTP 响应适合:

  • 一次性数据获取

  • 不需要实时更新的数据

  • 简单的请求-响应交互

SSE 流适合:

  • 实时通知和更新

  • 长时间运行的过程(如你的 AI 响应流)

  • 服务器向客户端推送数据

  • 需要增量更新的场景

6. 其他特点

SSE 特有功能:

  • 内置事件类型 (event: xxx)

  • 消息 ID 跟踪 (id: xxx)

  • 自动重连机制

  • 可自定义事件类型

限制:

  • SSE 是文本协议,不支持二进制数据

  • 只支持服务器到客户端的单向通信

  • 某些浏览器有并发连接限制 (通常每个域名 6 个)

http://www.lryc.cn/news/572572.html

相关文章:

  • 防抖不同的实现
  • 领码 SPARK 融合平台赋能工程建设行业物资管理革新——数智赋能,重塑中国模式新范式
  • 阿里云OSS对象云储存入门操作
  • 【Leetcode】字符串之二进制求和、字符串相乘
  • 智能危险品搬运机器人市场报告:行业趋势与未来展望
  • 深度学习笔记27-LSTM实现糖尿病探索与预测(Pytorch)
  • 华为云Flexus+DeepSeek征文 | 利用Dify平台构建多智能体协作系统:从单体到集群的完整方案
  • SpringMVC知识点总结
  • C++网络编程入门学习(五)-- CMake 学习笔记
  • iOS应用启动时间优化:通过多工具协作提升iOS App性能表现
  • 在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)
  • 【支持向量机】SVM线性可分支持向量机学习算法——硬间隔最大化支持向量机及例题详解
  • 退出python解释器的四种方式
  • Android中Native向System Service进行Binder通信的示例
  • 解决 Docker 里 DrissionPage 无法连接浏览器的问题,内含直接可用的Docker镜像(DrissionPage 浏览器链接失败 怎么办?)
  • 机构运动分析系统开发(Python实现)
  • WPF xaml 中设置ResourceDictionary中的全局变量
  • JS红宝书笔记 8.2 创建对象
  • 李宏毅《生成式人工智能导论》| 第1讲:什么是生成式人工智能
  • python画三维立体图
  • SpringBoot扩展——应用Web Service!
  • 简单理解HTTP/HTTPS协议
  • C#语言入门-task2 :C# 语言的基本语法结构
  • Python训练营打卡 Day55
  • C++实现手写strstr函数
  • 12.10 在主线程或子线程中更新 UI
  • Tensorflow推理时遇见PTX错误,安装CUDA及CuDNN, 解决问题!
  • 编辑器及脚本案例
  • 【Redis】主从复制
  • Transformer结构介绍