300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > (一) HTTP分块传输(chunked)

(一) HTTP分块传输(chunked)

时间:2019-12-19 23:29:37

相关推荐

(一) HTTP分块传输(chunked)

分块传输编码

Http有长连接和短连接两种方式;短连接即一次请求对应一次TCP连接的建立和销毁过程,而长连接是多个请求共用同一个连接这样可以节省大量连接建立时间提高通信效率。请求头里面的字段Connection:keep-alive字段就是告诉HTTP服务器响应结束后不要关闭连接,浏览器会将连接缓存起来,当在有限时效内有再次对相同服务器发送请求时则直接从缓存中取出连接进行通信。当然被缓存的连接如果空闲时间超过了设定值则会关闭连接。

当使用短连接的时,可以通过服务器端对连接的关闭来获得消息体的结束位置;但长连接的时候,我们主要采用设置响应头Content-Length或者Transfer-Encoding:chunked的方法来解析消息体。

分块传输编码是超文本传输协议中的一种数据传输机制,允许HTTP由网页服务器发送给客户端应用的数据可以分成多个部分。分块传输编码只在HTTP协议1.1版本中提供。在一般情况下,HTTP应答消息中发送的数据是整个发送的,Content-Length消息头字段表示数据的长度。客户端通过它来解析消息。然而,对于分块传输编码来说,它会把数据分解成一系列数据块,并以一个或多个块发送。

优点

对于动态生成的内容来说,在内容创建完之前是不可知的。分块传输能很好的解决这种情形的传输编问题,它允许服务器在最后发送消息头字段。这样对于传输数据时,不需要等到所有的内容都计算好后在进行。对于传输的数据有时使用压缩以缩短传输花费的时间。而使用分块传输可以分隔压缩对象的多个部分。

Chunked消息体格式

hex的分块长度+<CR>回车+<LF>换行chunked data结束块的分块长度为0

举例:

如要发送的内容(消息体)为:abcd那么消息体的格式为:

4<CR><LF>abcd<CR><LF>0<CR><LF>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。