Http网络通讯

作者: buchuqi2677 | 来源:发表于2017-12-03 16:35 被阅读0次

    计算机网络知识

    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)来提高网络请求性能

    • okhttp的优点
      • 支持HTTP2/SPDY黑科技
      • socket自动选择最好路线,并支持自动重连
      • 拥有自动维护的socket连接池,减少握手次数
      • 拥有队列线程池,轻松写并发
      • 拥有Interceptors轻松处理请求与响应(比如透明GZIP压缩,LOGGING)
      • 基于Headers的缓存策略
    对Request、Response的封装Chain
    Builder参数的引入对于缓存、请求的优化
    Retrofit

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

    相关文章

      网友评论

        本文标题:Http网络通讯

        本文链接:https://www.haomeiwen.com/subject/ppzabxtx.html