java进阶

Http网络通讯

2017-12-03  本文已影响0人  buchuqi2677

计算机网络知识

1.HTTP相关知识,包括一个Http请求的内部结构,Http各个版本的不同,Http的特性等等。
2.TCP相关知识,包括三次握手、四次挥手、窗口滑动、拥塞控制等等
3.IP相关知识
4.5层和7层网络架构知识,这里只需要了解框架就行,各个层的具体协议除了上面说的其他都不需要特别了解。

OSI网络七层模型
QQ图片20171205091912.png 0_1325744597WM32.gif

客户机发起一次请求的时候:客户机会将请求封装成http数据包-->封装成Tcp数据包-->封装成Ip数据包--->封装成数据帧--->硬件将帧数据转换成bit流(二进制数据)-->最后通过物理硬件(网卡芯片)发送到指定地点。
服务器硬件首先收到bit流....... 然后转换成ip数据包。于是通过ip协议解析Ip数据包,然后又发现里面是tcp数据包,就通过tcp协议解析Tcp数据包,接着发现是http数据包通过http协议再解析http数据包得到数据。

Android 网络通讯框架机制

OkHttp

想想假入之前没有用okhttp框架,自己写网络请求时的场景,启动一个异步线程,发起请求,处理请求,异步线程结束,假如考虑到网络不好、多个同时多次发起网络请求的情况下呢?性能还有保障嘛?
通过引入Chain 对拦截器(Interceptor)处理,封装Request、Response对象,在通过引入线程池(Dispatcher控制)、缓存(DiskLruCache)、重连机制(RouteSelector)来提高网络请求性能

对Request、Response的封装Chain
Builder参数的引入对于缓存、请求的优化
Retrofit

动态代理形式模式来使用,底层还是用的okhttp

上一篇下一篇

猜你喜欢

热点阅读