首页 > 其他分享 >webscoket 中的 mask 细节

webscoket 中的 mask 细节

时间:2024-04-02 16:58:39浏览次数:23  
标签:data frame mask 细节 掩码 webscoket Section MUST

掩码用于给客户端到服务端的帧数据加密(异或的方式,非常简单),对此RFC6455中给了一些细节如下:

The masking key is contained completely within the frame, as defined in Section 5.2 as frame-masking-key. It is used to mask the "Payload data" defined in the same section as frame-payload-data, which includes "Extension data" and "Application data".

我们看到,这个写的很清楚,掩码是给 payload  进行加密用的,这个位置会产生一个误解,就是,如果我没有 payload 的时候,是不是可以不需要掩码?比如一个 ping 帧,不带任何数据是否不需要mask?

答案是否定的!

协议中有这么一段话:

In the WebSocket Protocol, data is transmitted using a sequence of frames. To avoid confusing network intermediaries (such as intercepting proxies) and for security reasons that are further discussed in Section 10.3, a client MUST mask all frames that it sends to the server (see Section 5.3 for further details). (Note that masking is done whether or not the WebSocket Protocol is running over TLS.) The server MUST close the connection upon receiving a frame that is not masked. In this case, a server MAY send a Close frame with a status code of 1002 (protocol error) as defined in Section 7.4.1. A server MUST NOT mask any frames that it sends to the client. A client MUST close a connection if it detects a masked frame. In this case, it MAY use the status code 1002 (protocol error) as defined in Section 7.4.1. (These rules might be relaxed in a future specification.)

这段明确说了,客户端发送到服务器的所有帧都必须有掩码,而服务器发送到客户端的所有帧都必须没有掩码。如果违背了这个规则,就必须以1002错误关闭连接。

因此,你可以看到客户端发送到服务器的ping,实际上是带了掩码的,哪怕这个ping没有任何payload 数据。

标签:data,frame,mask,细节,掩码,webscoket,Section,MUST
From: https://blog.csdn.net/draracle/article/details/137276362

相关文章

  • 深度学习-卷积神经网络--Mask RCNN-62
    目录1.总体网络结构2.MaskRCNN细节3.loss4.预测参考链接:https://blog.csdn.net/qq_47233366/article/details/131326554?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522171196013016800213023649%252522%25252C%252522scm%252522%25253A%252522201......
  • mask
    maskTakesanytypeofpolygonandanoptionalmaskandreturnsapolygonexteriorringwithholes.获取任意类型的多边形和一个可选的遮罩,并返回一个带孔的多边形外部环。参数参数类型描述polygon(FeatureCollection|Feature<(Polygon|MultiPolygon)>)GeoJSON......
  • LiftPool:双向池化操作,细节拉满,再也不怕丢特征了 | ICLR 2021
    论文参考信号处理中提升方案提出双向池化操作LiftPool,不仅下采样时能保留尽可能多的细节,上采样时也能恢复更多的细节。从实验结果来看,LiftPool对图像分类能的准确率和鲁棒性都有不错的提升,而对语义分割的准确性更能有可观的提升。不过目前论文还在准备开源阶段,期待开源后的复现,特......
  • C++: 虚函数,一些可能被忽视的细节
    C++:虚函数,一些可能被忽视的细节引言:关于C++虚函数,对某些细节的理解不深入,可能导致我们的程序无法按预期结果运行,或是表明我们对其基本原理理解不够透彻。本文详细解答以下几个问题:实现多态,忘记写virtual会怎么样?虚函数的默认参数可以重载吗?纯虚函数真的不能有实现吗?析构函数可......
  • MyBatis细节注意
    1.参数占位符:${}和#{}#{}:占位符会将传入的值安全地转义,防止SQL注入攻击,它会在预编译阶段将占位符替换为一个问号 ?,然后通过PreparedStatement设置参数值,从而确保安全性。适用于实际参数值作为参数传递给SQL语句的情况,如表名、字段名、条件值等。${}:占位符会直接替换为参......
  • Capture One 23:光影魔术师,细节掌控者mac/win版
    CaptureOne23,不仅仅是一款摄影后期处理软件,它更是摄影师们的得力助手和创意伙伴。这款软件凭借其卓越的性能、丰富的功能和前沿的技术,为摄影师们带来了前所未有的影像处理体验。→→↓↓载CaptureOne23mac/win版CaptureOne23以其强大的色彩管理和光影调整能力,让摄影师们......
  • 在视频号上开小店,这些细节内容你知道吗?过来人经验分享!
    大家好,我是电商小布。现在有越来越多的小伙伴,看到了视频号小店的内部的发展机会,纷纷想要加入这个市场。但是不了解这个项目,在开店运营的时候都是无处下手的。这其中的一些细节内容一定要提前的了解清楚。接下来,小布就从三个方面,来带大家深入的了解一下这个项目。一、主体......
  • 宁波中墙建材教你如何选择合适的PC砖胎膜?安装需要注意哪些细节?
    宁波中墙建材教你如何选择合适的PC砖胎膜?安装需要注意哪些细节?选择合适的PC砖胎膜对于确保施工质量和工程的耐久性至关重要。PC砖胎膜是一种预制混凝土构件,用于建筑工程中的模板结构,特别是在地下室筏板的侧壁施工中。以下是如何选择合适的PC砖胎膜以及安装时需要注意的细节......
  • 藏不住“骨子里的穷”,这5个细节暴露其家境,都是穷人家的通病
     很多人都说,家居环境是人们生活习惯的体现,我们可以通过家居的一些细节,看出一个家庭是富裕还是贫穷。即便有些穷人家庭,可以把家里装修、布置得“高大上”。但是家的气质、生活习惯,是刻进骨子里的,很难摆脱。即便再用心伪装,也藏不住“骨子里的穷”。以下这5个细节,都是穷人家的通病......
  • 一秒变身艺术家!U2Net 跨界肖像画,让你的头像瞬间细节完美复刻,打造个性化头像新风潮!
    效果测试图片来自网络,如有侵权,联系删除。项目关注微信公众号,回复关键字:“一秒变身艺术家”,获取程序!模型信息Inputs-------------------------name:input_imagetensor:Float[1,3,512,512]---------------------------------------------------------------Outputs-......