WebSocket为什么为什么需要Connection和Upgrade两个header?

WebSocket, Http 2的协议升级过程,都需要Connection,Upgrade两个字端来联合完成。 比如初始化WebSocket请求:Host: echo.websocket.orgConnection: UpgradeUpgrade: websocket在设计协议的时...

WebSocket, Http 2的协议升级过程,都需要Connection,Upgrade两个字端来联合完成。

比如初始化WebSocket请求:

Host: echo.websocket.org

Connection: Upgrade

Upgrade: websocket


在设计协议的时候,为什么不仅仅通过Upgrade Header来完成呢?

Connection和Upgrade头部有不同的起源和语义:

  • Connection: Upgrade 表示Upgrade是一个hop-by-hop的字段,这个字段是给proxy看的
  • Upgrade: websocket 表示浏览器想要升级到WebSocket协议,这个字段是给最终处理请求的程序看的。
  • 如果只有Upgrade: websocket,说明proxy不支持websocket升级,按照标准应该视为普通HTTP请求。


  • 发表于 2024-03-03 14:22
  • 阅读 ( 451 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章