什么';这两个词之间有什么区别;“文本框”;及;“二进制帧”;在Websocket中?

什么';这两个词之间有什么区别;“文本框”;及;“二进制帧”;在Websocket中?,websocket,Websocket,中的文本帧(操作码=0x01)和二进制帧(操作码=0x02)。它们之间有什么不同,哪一个更快?对于一些背景知识,或者对其他领域更熟悉的人来说,HTTP/1依赖于非结构化明文协议,而HTTP/2允许通过二进制帧更快地处理消息。此外,SMTP依赖于文本,而TCP依赖于二进制协议。总之,文本依赖于ASCII(“Hello”),而二进制虽然是一个令人困惑的术语,却没有可读的表示形式。在JavaScript中,socket.send(新的ArrayBuffer(8))是一个基本的二进制对象,是可以发送的格

中的文本帧(操作码=0x01)和二进制帧(操作码=0x02)。它们之间有什么不同,哪一个更快?

对于一些背景知识,或者对其他领域更熟悉的人来说,HTTP/1依赖于非结构化明文协议,而HTTP/2允许通过二进制帧更快地处理消息。此外,SMTP依赖于文本,而TCP依赖于二进制协议。总之,文本依赖于ASCII(“Hello”),而二进制虽然是一个令人困惑的术语,却没有可读的表示形式。在JavaScript中,
socket.send(新的ArrayBuffer(8))
是一个基本的二进制对象,是可以发送的格式的一个示例。这将分配一个8字节的连续内存区域,并用零预填充它

希望这能提供一些好的背景

0x01
是十六进制数(用
0x
表示并表示整数1),是4位操作码,用于接收器(客户端或服务器)了解将接收的“帧”类型。UTF-8由
0x01
表示,原始二进制由
0x02
表示

原始二进制将更快。想象一个这样的架构:

如果我们通过Websocket发送文本数据(操作码
0x01
),它必须在代理上转换接收到的数据。在TCP服务器响应客户端消息之前,它可能必须将响应转换为文本数据。通过base64将二进制数据编码为ASCII文本将使消息的大小增加20-30%


使用
0x02
的操作码,我们可以跳过整个请求/响应周期中的两个步骤,并减少我们传递的消息的大小。简而言之,我们跳过口译。此外,Websocket规范具有UTF-8验证规则。文本和二进制之间的差异可能是二进制的2倍

我也有这个问题。。