Volley原理和Okhttp原理

1 Volley原理和Okhttp原理:
*Volley 源码分析:
请求队列 初始化     磁盘缓存目录  5M  》=9 HttpUrlConnection
HttpClient (比较庞大,不适合) 线程池 4  hendler.post
分发器(绑定主线程)
 
  启动队列   缓存分发器  死循环 请求 
缓存请求队列  网络请求队列
缓存头  集合   key   再去查数据 
创建4 个网络线程   启动
 
发动请求 add  分发器死循环  拿到key  查找  缓存
没有 网络请求 存入缓存 结果分发给主线程
后台开发 设置缓存时间

2 okhttp 源码分析:
同步请求   异步请求   接口不一样  最终走到 Call 里卖面
异步默认最多 64 个请求  
拦截器机制:重写请求头、请求体  响应头和响应体
 
HTTP 协议的瓶颈在于它需要靠很多链接来处理并发。
Okhttp 内部实现是基于 SPDY 协议。
SPDY协议 Google 官方提出的应用层协议(基于 TCP ),通过压缩、多路复用和优先级来缩短加载时间。(speedy的缩写)
·          多路复用请求:共享同一个Socket来处理同一个服务器的所有请求。
·          请求优先级:客户端能请求某个资源被优先传输。这避免了高优先级请求被非关键资源堵塞网络通道的问题。
·          头部压缩:客户端现在发送了大量冗余的 HTTP 头部信息。因为一个页面可能有 50 100 个子请求,这些数据是巨大的。通过头部压缩,省流量。
·          服务端推送流:服务端能向客户端推送数据不需要客户端发起一个请求。
 
更高效的使用HTTP 可以让我们的应用运行更快、更节省流量。而OkHttp就是为此而生。
对比http协议和SPDY协议:
1.     单路连接 请求低效(先进先出,如果中间阻塞,就要等)------ 多路复用,请求优化(可设置优先级)
2.    HTTP 只允许由客户端主动发起请求---- 服务端推送流
3.    HTTP 头冗余-------- 头部压缩


你可能感兴趣的:(android工作)