发布于 2024 年 2 月 26 日,星期一
半包问题在前端开发中通常指的是HTTP请求中服务器只返回部分数据的情况,常见于大文件下载或流式传输。解决这一问题的本质在于优化数据传输机制,确保客户端能够正确接收并处理不完整的数据包。常见方法包括使用分块传输编码(Chunked Transfer Encoding)、设置合理的超时时间和重试机制、以及在前端代码中处理数据包的拼接和校验。此外,利用WebSocket等长连接技术也能有效避免半包问题,确保数据传输的完整性和实时性。
极度投入,深度沉浸,边界清晰
前端小菜鸡一枚,分享的文章纯属个人见解,若有不正确或可待讨论点可随意评论,与各位同学一起学习~
欢迎关注
『非同质前端札记』
公众号 ,一起探索学习前端技术......公众号回复
加群
或扫码
, 即可加入前端交流学习群,长期交流学习......公众号回复
加好友
,即可添加为好友
固定数据大小
:发送放和接收方固定发送数据的大小,当字符串长度不够时用空字符弥补。有了固定大小之后就知道每条消息的具体边界了,这样就没了粘包问题。
封装自定义数据协议层
:在 TCP 协议的基础上封装一层自定义数据协议,在自定义数据协议中,包含数据头(储存数据的大小) 和数据的具体内容,这样服务端得到数据后,通过解析数据头就可以知道数据的具体长度,也就没有粘包的问题了。
以特殊的字符结尾
: 比如 \n
结尾,这样我们就知道数据的具体边界了从而避免了粘包的问题。
包头 + 包体格式
:这种格式的包一般分为两部分,即包头和包体,包头是固定大小的,且包头中必须含有一个字段来说明接下来的包体有多大。Q(question)
R(result)
A:(attention matters)
D:(detail info)
S:(summary)
Ana:(analysis)
T:(tips)
『非同质前端札记』
公众号 ,一起探索学习前端技术......加群
或 扫码
, 即可加入前端交流学习群,长期交流学习......加好友
,即可添加为好友