HTTP的Body字段

Accept-Encoding

表示支持压缩编码格式

gzip 用于UNIX系统的文件压缩、流量比较大的时候可以节约一些流量

deflate 一种使用LZ77算法与哈夫曼编码的一个无损数据压缩无专利算法的压缩技术

HTTP压缩过程

首先客户端发送请求到服务器、Request携带Accept-Encoding

服务器接到Request后,生成数据,Content-type和Content-Length

服务器通过gzip进行编码、然后更改Content-Encoding为gzip,然后发给客户端

客户端接收数据,根据Content-En......

可靠的UDP的Golang实现源码解析

协议流程图

主要关键 UDP 输入 输出 逻辑时钟

要点

服务端需要保存一段时间发送历史

客户端需要保存已接收完整数据的进度,以及接收队列

如果接收完整数据进度与接收队列中间断了一截,需要主端像服务端请求重传

难点在进度更新、重传逻辑、封包协议

数据发送接收抽象为了数据层与UDP本身无关系,要使用UDP外层还得套一个发送队列和接收队列

定义数据结构

消息队列

recvQueue 接收队列

sendQueue 发送队列

sendHistory 发送历史-用作重传

消息队列元素

{byteBuffer, i......