WebSockets 版本之间的协议差异是什么?

2024-01-03

是否有任何地方的摘要协议差异各种 WebSockets 草案之间的关系?

浏览器支持级别仍然遍布各处,因此仅考虑 RFC 是不够的。

显然 Sec-WebSocket-Version 发生了变化,而且我知道早期的格式非常不同。然而,我指的是协议中更微妙的变化。例如,hybi-10 (v8) 在成帧中建议扩展的有效负载长度存储为 16/63,而不是 RFC 6455 (v13) 中的 16/64。

那么:是否有任何地方的变化摘要?

或者(如果我们忽略非常早期的草案和版本号),协议是否本质上是相同的,并且草案主要是对规范文本的更正?


维基百科WebSocket http://en.wikipedia.org/wiki/WebSocket列出哪些浏览器支持哪些协议。

此外,IETF 还提供了一个 diff 工具,可用于比较任意两个 RFC 草案规范。例如,要比较 WebSocket 草案 15 和 17,请转到此处:

调整 url1 和 url2 地址以获得任意版本的差异。请注意,这将向您显示规范的文本差异,并且规范的较大更改通常会在线路上没有相应差异的情况下发生。我建议搜索“协议概述”部分和“基本框架协议”部分的差异,它们分别显示标题摘要和框架图。

线路协议的最大区别发生在 Hixie-76/HyBi-00(HyBi-00 只是 Hixie-76 的副本,用于开始新系列)和从 HyBi-04 开始的 HyBi 系列的其余产品(HyBi-17)之间成为 IETF RFC 6455)。从 Hixie 系列到 HyBi 系列的一些主要变化:

  • 在 Hixie-76 协议中,有一个特殊的哈希握手发生在握手标头之后但实际数据帧之前。
  • 在 Hixie-76 中,帧的前缀为 0x00,后缀为 0xff。除了一直接收/缓冲到帧末尾之外,无法确定帧的长度。在 HyBi 系列(HyBi-00 之后)中,帧长度是前缀/标头的一部分,没有后缀。
  • HyBi系列支持负载中的UTF-8文本和二进制数据(Hixie仅支持UTF-8)。这由帧头中的操作码指示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebSockets 版本之间的协议差异是什么? 的相关文章

随机推荐

  • 解组单个元素列表失败

    我正在运行一个示例 我再也找不到了 布莱斯 道恩斯博客 http blog bdoughan com在 Glassfish 3 上使用 EclipseLink 2 5 MOXy for JAXB 服务 XmlRootElement XmlA
  • 如何在xsd中引用属性

    我尝试定义一个可以在后续元素定义中引用的属性
  • Python Pika - 消费者进入线程

    我正在开发一个带有后台线程的Python应用程序 用于消费来自RabbitMQ队列的消息 主题场景 我在按钮的 on click 事件上启动线程 这是我的代码 请注意 self receive command def on click st
  • MVC3 中的 CSS 背景图像

    我正在尝试为我的 MVC3 应用程序创建样式表 我不知道如何格式化背景图像 url background image url Content images gradient tile page top png or background i
  • python 错误:“模块”对象没有属性“AF_UNIX”

    这是我的Python代码 if name main import socket sock socket socket socket AF UNIX socket SOCK STREAM sock connect 0 0 0 0 4000 i
  • 重写函数而不删除静态属性

    如果我有一个这样的函数 function a console log a 然后分配一个静态属性 如下所示 a static foo 但是假设我想用另一个函数覆盖该函数 如下所示 var old a a function console lo
  • Spring data mongodb,如何设置SSL?

    到目前为止 我还没有找到关于该主题的良好解释 文档 我在用
  • fwrite 是原子的吗?

    一个简单的问题 我需要在我的程序中添加一些日志记录 如果两个进程在同一文件上使用 fwrite 但不是同一文件描述符 则写入的日志消息将是原子的或混合的 有长度限制吗 是定义了 ANSI C 行为还是定义了实现 如果后者在 MacOSX L
  • 以编程方式添加 SwitchCompat 错误

    我正在尝试添加android support v7 widget SwitchCompat以编程方式 我收到此错误 java lang NullPointerException Attempt to invoke interface met
  • 检查用户输入是否在txt文件中,使用批处理

    我正在为局域网联网计算机批量制作聊天风格的系统 我想检查用户名是否被占用 如果不允许 我如何检查用户在这一行中输入的内容 set p name2 我已经在测试文件中尝试过这个 但无法让它工作 startup set fail set nam
  • findOne 可以工作,但不能获取全部/查找

    findOne 工作正常 db collection updates function err collection collection findOne author req user id function err doc 我正在尝试获
  • getaddrinfo,我没有得到任何 canonname

    我正在尝试读取有关特定主机的所有信息并打印出所有信息 我可以读取并打印出所有地址 但我没有读取任何 ai canonname 首先 我认为我的示例 www google com www irs gov 没有规范名称 但过了一会儿我发现我根本
  • 如何从控制器中包含的模块渲染js模板?

    我在控制器关注点中有一个操作 该操作包含在控制器中 此操作不会呈现在 respond to 块下指定的 js erb 文件 如何正确获取控制器关注点中的操作以成功呈现 js erb 文件 或任何视图 是我的路线有问题吗 模块操作的链接 li
  • String 子字符串在 Swift 中如何工作

    我一直在使用 Swift 3 更新一些旧代码和答案 但是当我使用 Swift 字符串和子字符串索引时 事情变得令人困惑 具体来说 我正在尝试以下操作 let str Hello playground let prefixRange str
  • SVN:创建文件夹的转储文件

    我正在尝试在 SVN 存储库中创建文件夹的转储文件 我的目标是将此转储导入另一个存储库 但那是另一个故事 我读了大概 20 页关于这个的内容 他们都告诉我要使用svndump过滤器 http svnbook red bean com en
  • wkhtmltopdf 每次运行都会生成不同的校验和

    我试图验证从运行到运行时从 wkhtmltopdf 生成的内容是否相同 但是每次运行 wkhtmltopdf 时 我都会针对同一页面获得不同的哈希 校验和值 我们正在谈论一些真正基本的东西 比如使用以下 html 页面 p This is
  • Azure 虚拟机上的 HTTPS

    我正在将我们的网站迁移到 Azure 并在 Windows Server 2012 VM 上运行 我已从 GoDaddy 购买了通配符 SSL 证书 并且已在虚拟机上安装和配置了它 我还配置了 IIS 以利用此证书来处理端口 443 上的所
  • 如何删除数据框中空值数量超过 x 的行? [复制]

    这个问题在这里已经有答案了 我正在尝试删除数据框中具有超过 7 个空值的行 请提出一些有效的方法来实现这一目标 如果我理解正确的话 只有当一行中的 nan 总数超过时 才需要删除行7 df df df isnull sum axis 1 l
  • 使用什么 Java 异常类来处理 HTTP 错误?

    我正在使用阿帕奇Http客户端 http hc apache org httpclient 3 x 并且希望通过 Java 异常机制向调用代码传达 HTTP 错误 400 错误请求 404 未找到 500 服务器错误等 Java 标准库或广
  • WebSockets 版本之间的协议差异是什么?

    是否有任何地方的摘要协议差异各种 WebSockets 草案之间的关系 浏览器支持级别仍然遍布各处 因此仅考虑 RFC 是不够的 显然 Sec WebSocket Version 发生了变化 而且我知道早期的格式非常不同 然而 我指的是协议