什么是 Okhttp?
所谓的 Okhttp 就是通过代码的方式实现了各种协议,将这些通信协议封装起来,让我们可以快速地用代码来实现。
Okhttp 好处
- 支持 HTTP1、HTTP2、Quic以及 WebSocket
之所以支持,是因为 Okhttp 的源码里面对这些协议的规则进行了实现。
- 连接池复用底层 TCP连接,减少请求延时
建立 TCP 连接是需要时间的,okHTTP 源码中对已经连接的 TCP,其实在代码中的体现就是 Socket 进行了缓存,再次请求同一地址的时候就不用重复建立连接了,从而减少请求延时。
- 无缝的支持 GZIP 减少数据流量
其实这是 HTTP 协议的内容,HTTP 协议中可以在请求头中规定是否支持数据压缩,Okhttp 就把这个请求头封装进去了,告诉服务器,我可以接受一个 GZIP 压缩的数据报文。
- 缓存响应数据减少重复的网络请求
这也是 HTTP 协议中定义的内容,有对应的字段表示
- 请求失败自动重试主机的其他 ip,自动重定向
同样也是 HTTP 协议中定义的内容。
这些好处,其实就是 okhttp 利用 HTTP 报文格式中规定的内容,然后进行处理,完成这些规定。如果没有处理的话,任凭服务器发送来的报文是什么,如果统统不管的话