OkHttp3源码学习综述

综述

记录下对OkHttp的源码学习过程,版本号为3.8

OkHttp官方的简介

OkHttp is an HTTP client that’s efficient by default:

HTTP/2 support allows all requests to the same host to share a socket.

Connection pooling reduces request latency (if HTTP/2 isn’t available).

Transparent GZIP shrinks download sizes. 

Response caching avoids the network completely for repeat requests.

简单归纳特点为支持连接复用,Gzip压缩和缓存等,所有的这些都是为了减少时延,增强传输性能。

准备工作

了解HTTP的一些基本知识,推荐阅读《图解HTTP》或者《HTTP权威指南》

HTTP协议栈,HTTPS协议栈,TCP/IP协议,WebSocket协议

URL语法,HTTP报文 (LINE,HEADER,BODY)

SOCKET编程,TCP性能聚焦(握手延迟,慢启动等)

代理,缓存,安全,认证。

下载源码,查看源码

推荐使用Intellij IDEA查看源码

阅读优质的研究分享 

OkHttp源码分析——整体架构

OkHttp源码分析——拦截器

OkHttp源码分析——任务队列

OkHttp源码分析——缓存策略

OkHttp源码分析——多路复用


整体框架与流程

OKHTTP的整体框架大致的可以分为

Interface——接口层:接受网络访问请求 可以理解为应用层

Protocol——协议层:处理协议逻辑 可以理解为安全层

Connection——连接层:管理网络连接,发送新的请求,接收服务器访问 可以理解为会话层

Cache——缓存层:管理本地缓存

I/O——I/O层:实际数据读写实现 可以理解为传输层

Inteceptor——拦截器层:拦截网络访问,插入拦截逻辑


OkHttp3源码学习综述_第1张图片
整体框架 来源OkHttp源码分析——整体架构
OkHttp3源码学习综述_第2张图片
事物流程图 来源拆轮子系列:拆 OkHttp https://blog.piasy.com/2016/07/11/Understand-OkHttp/



你可能感兴趣的:(OkHttp3源码学习综述)