Chunk简介
HTTP是可以传输大文件的,比如上G的资源。
上G的资源肯定是无法直接传输的,因为以太网有着MTU的限制,所以HTTP采用了Chunk的方法来传输大文件
chunk是HTTP应用层实现的分块,不需要TCP的分段了。
Chunk详解
Chunk的中文意思就是块。
Chunk就是将大文件分成块,一个块对应着一个Http请求,然后会对每个Http进行编号,然后在接收方重组。
正常的Http请求都是客户端请求,服务器返回然后就结束了。而Chunk不会,是会一直等待服务器多次发送数据,发送数据完成后才会结束。
怎么判断一个Http是不是Chunk呢?
通过Header中的Transfer-Encoding = Chunked
怎么判断是否传输结束呢?
每个Http中的body中分为 length 和 chunked data 。length 就是传输的数据长度,chunked data就是实际的传输数据。二者通过换行符分隔。
当收到length = 0的http时,就说明传输完成了。