HTTP协议中的长连接,读完之后,大部分程序员收藏了...( 五 )
并非keep-alive的timeout设置时间越长 , 就越能提升性能 。 长久不关闭会造成过多的僵尸连接和泄露连接出现 。
那么okttp在客户端是如果类似于客户端做到的keep-alive的机制 。
长连接的过期时间
上图中的Keep-Alive: timeout=20 , 表示这个TCP通道可以保持20秒 。 另外还可能有max=XXX , 表示这个长连接最多接收XXX次请求就断开 。 对于客户端来说 , 如果服务器没有告诉客户端超时时间也没关系 , 服务端可能主动发起四次握手断开TCP连接 , 客户端能够知道该TCP连接已经无效;另外TCP还有心跳包来检测当前连接是否还活着 , 方法很多 , 避免浪费资源 。
长连接的数据传送完成识别
使用长连接之后 , 客户端、服务端怎么知道本次传输结束呢?两部分:1是判断传输数据是否达到了Content-Length指示的大小;2动态生成的文件没有Content-Length , 它是分块传输(chunked) , 这时候就要根据chunked编码来判断 , chunked编码的数据在最后有一个空chunked块 , 表明本次传输数据结束 。 更细节的介绍可以看这篇文章 。
推荐阅读
- 手机游戏|3年内不得转会FNC!G2老板被爆与C9达成秘密协议,Perkz转会受阻
- 热血传奇|热血传奇:当年心中的巅峰,随便一件无比骄傲
- 手办|原神:“肝帝”再现!玩家花30天自制胡桃手办,手中的护摩亮了
- edg战队|EDG夺冠可谓是小说中的梦幻剧情,先破RNG再废GEN.G,豪虐DK夺冠
- 亚运会|LOL入选亚运会正赛,你心中的阵容怎么选?
- 孙权|三国杀:背景帝!武将皮肤中的最强客串王,孙十万果然名不虚传
- 夏侯惇|王者荣耀之中的“最强坦克”, 夏侯惇和程咬金你更喜欢谁?
- 穿越火线|轻松上手,赶超雷神:盘点CF中那些神枪中的天之骄子
- 明日之后|消逝的光芒2设计师:明日之后打造了我心目中的人尸大决战
- 老玩家|天龙网游:天龙游戏中的神奇玩法,没有经历过别说自己是老玩家