http 2.0的发展方向及优劣得失
http2.0 的 连接复用,长连接,pull/push等一些功能,都能看出来其发展方向是 越来越 向应用层靠近(http本身确实也就是应用层的协议),有他的好处,也有他的弊端:
好处是:符合现代化网页的应用场景,业务化服务,事务化服务的特点(我不认为头部压缩,分部请求是使得他传输更加高效的原因,主要原因在于 网页,客户端等大量数据请求所具有的事务化特点与http1.0及更早的设计之间的矛盾造成)
弊端是:http2.0将过于依赖客户端算力去维护支持更加复杂的控制,以及对分层的网络模型的向上侵入(五层网络模型确实不一定是最优的)
对http协议的守望
http的目前发展方向看来,必定是会具有业务事务性的特点,单个连接请求将会更加像一条数据流管道,而不抽象于Http数据帧的存在,一条连接的生存期将与数据服务的事务性重合
- 当下的服务数据存在于网络的分布式地点,与http的事务性形成的矛盾将会催生出:连接簇,http连接拓扑网络线路中途多合一的特性,而不是进行站内转发,内网反向代理
- http的场景适用或造成其狭隘,其他各种场景都会催生出不同的http协议,基于老的http的协议版本
Android网络框架暂时的缺陷
以okhttp框架为例,okhttp的优点主要在于他的请求包管理,但是在网络连接管理上基本上只有 connection的管理以及线程池的管理
基于http2.0 网络框架应有的改变
数据业务性的请求往往以一个activity或service为基本单位,http连接的事务性往往为一条连接,应该存在一个数据连接绑定到一个activity的生存周期,将连接的生存期与activity的生存期绑定
或者
代理所有的数据请求,对数据请求进行统计抽离,细化为单独的几个请求,净化请求连接数