在阅读WebSocket protocol standard时,我看到了以下段落:
"有效载荷数据"的长度,以字节为单位:如果为0-125,则为有效载荷长度。如果为126,则后面的2个字节被解释为16位无符号整数,即有效负载长度。如果为127,则后面的8个字节被解释为64位无符号整数(最高有效位必须为0)是有效载荷长度。多字节长度数量以网络字节顺序表示。
我有两个问题:
答案 0 :(得分:2)
最高有效位是指位序列中代表数字的最大位值位置中的位。考虑一个四位序列。在这里,如果将最高有效位限制为0,则生成的4位数字看起来像0XXX
,其中每个X
可以是0或1。
在上面的文档中,当您有一个较长的有效负载,其长度需要超过2个字节(16位)来表示时,有效负载长度字段被标记为127。在这种情况下,有效负载字段中的127(或1111111
)不表示长度,而是充当标志以指示以下八个字节都是有效载荷场。表明这八个字节中的最高有效位必须为0.这意味着有效载荷字段上最左边的位必须设置为0(即帧中的字节数16)。
网络字节顺序是指大端编码系统,因为它用于网络传输。