news 2026/4/23 17:48:32

【光子AI】MCP 的 streamable_http 与 SSE 前后区别是什么:原理剖析和源代码详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【光子AI】MCP 的 streamable_http 与 SSE 前后区别是什么:原理剖析和源代码详解

MCP 的 streamable_http 与 SSE 前后区别是什么:原理剖析和源代码详解

文章目录

  • MCP 的 streamable_http 与 SSE 前后区别是什么:原理剖析和源代码详解
      • 1. 核心架构区别
      • 2. 为什么要从 SSE 升级到 Streamable HTTP?
      • 3. 交互流程对比
      • 总结
  • =====================================
    • 一句话结论
    • 时间线(“前后”指的就是这些版本)
    • 旧 SSE transport vs 新 Streamable HTTP:逐点对比
      • 1) Endpoint 结构:两条 URL → 一条 URL
      • 2) 客户端发消息方式:固定 POST URL + 手摇协议 → 每条消息一次 POST(更“HTTP 化”)
      • 3) 服务端回消息方式:只能走 SSE → 可以 JSON 也可以 SSE
      • 4) 服务端主动推送:从“默认走那条 SSE 长连接” → 规范化为 GET 开 SSE
      • 5) 断线恢复/补发:旧版没标准答案 → 新版把 `Last-Event-ID`、重放规则写进规范
      • 6) Session:从“各家自定义” → 规范化 `MCP-Session-Id`
    • 工程上的“最常见坑”(你大概率就是在这卡住)
      • 坑 1:浏览器原生 `EventSource` 不能加自定义 headers
      • 坑 2:SSE 连接数限制(浏览器侧)
    • SDK 配置名的对应关系(你看到的 `streamable_http` 是什么)
    • 迁移时你应该怎么理解“前后差异”(实操版)
  • ================================================
      • 场景设定
      • 1. Legacy SSE (双通道模式)
        • 后端代码 (Server)
        • 前端代码 (Client)
      • 2. Streamable HTTP (单通道模式)
        • 后端代码 (Server)
        • 前端代码 (Client)
      • 关键差异总结
  • =================================================
    • A) Legacy SSE transport(HTTP+SSE,旧版,两条 endpoint)
      • 协议要点(对应你要对比的“差异”)
      • 1) 后端:`legacy-sse-server.js`(Node + Express)
      • 2) 前端:`legacy-sse-client.html`(浏览器:EventSource + fetch POST)
    • B) Streamable HTTP(新 transport:单一 /mcp,POST/GET,可选 SSE)
      • 协议要点(对应你要对比的“差异”)
      • 1) 后端:`streamable-http-server.js`(Node + Express)
      • 2) 前端:`streamable-http-client.html`(浏览器:fetch 处理 JSON 或 SSE)
    • 你用这两套代码做对比时,应该看到的“网络形态差异”
      • Legacy SSE(旧)
      • Streamable HTTP(新)

在 MCP (Model Context Protocol) 协议的演进中,Streamable HTTP是作为SSE (Server-Sent Events)的升级替代方案推出的。它们的核心区别在于连接架构的复杂度网络兼容性

简单来说:

  • SSE (旧版/Legacy):需要两个不同的端点(一个发消息,一个收消息),依赖长连接。
  • Streamable HTTP (新标准):只需要一个端点,统一了收发,兼容性更强,支持“按需流式”。

以下是详细的技术对比和区别:

1. 核心架构区别

特性SSE (旧版传输方式)Streamable HTTP (新版传输方式)
端点数量双端点 (Dual Endpoints)
1.
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:09:22

STM32项目分享:粮仓环境监测系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 PCB图 五、程序设计 六、实验效果 ​ 七、包含内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: https://www.bilibili.com/video/BV1pymdB2ELT/?…

作者头像 李华
网站建设 2026/4/23 15:37:53

美亚 4.7 星评,专家力荐,用 28 道题搞定算法核心能力!

很多人真正意识到算法能力这件事,往往不是在书桌前,而是在刷题平台上。代码能不能过、时间复杂度是否超限,计算机会用最直接的方式给你反馈。也正因为如此,在线评测系统才会被广泛用于招聘筛选、编程竞赛,以及程序员的…

作者头像 李华
网站建设 2026/4/23 11:35:28

别再用手机自带天气了

天气应用的技术革命:从数据接收到智能预警的全链路解密当我第一次打开 Mercury Weather 3.0 的飓风追踪界面时,眼前出现的不仅仅是简单的气象图标,而是一个完整的气象数据可视化系统。这让我不禁思考:在看似简单的天气应用背后&am…

作者头像 李华
网站建设 2026/4/23 11:29:49

电车的真相,700公里续航跑长途仅是勉强够,有效续航仅六成

随着纯电车的续航不断提升,如今部分电车的续航已达到700公里了,单从数据来看,电车达到这样的续航应该能充分满足要求了,但是只要一跑长途,就会发现这样的续航仅仅是勉强够,这是因为快充技术的特性决定的。车…

作者头像 李华
网站建设 2026/4/23 16:11:05

Android应用程序 c/c++ 崩溃排查流程二——AddressSanitizer工具使用

目录 1.背景 2.ASan工具集成到应用中进行使用 3.使用ASan工具查看日志 1.背景 由于在Android应用中进行c/c编程会有各种crash或者内存指针异常,如果内存需要查看哪地方进行释放内存是无法通过addr2line或者ndk-stack工具排查出来的,这时就需要使用Add…

作者头像 李华