【翻译】okhttp的缓存是如何工作的

本文翻译了一篇关于OkHttp缓存的文章,探讨了如何启用缓存、缓存工作方式、离线缓存的使用、缓存策略、服务器如何决定客户端是否使用缓存等。OkHttp遵循HTTP缓存标准,通过Cache-Control、Expires等头部信息进行缓存控制。文章强调缓存和存储的区别,并提醒使用FORCE_CACHE策略需谨慎。
摘要由CSDN通过智能技术生成

在网上看到一篇国外的讲okhttp缓存的文章,感觉写的很好,简明扼要。国内虽然也有很多讲okhttp缓存的文章,有的写的很好,有的则写的比较繁琐。所以我还是把这篇文章大致翻译一下,并结合使用过程中的一些情况以及自己的理解,来谈一下okhttp缓存。原来的文章在这里
TIM截图20191101212413.png
先放一张图,这是不考虑离线情况下的okhttp缓存工作流程图:
1_X8clb2gjCfTtlf2B7HU6Tw.png
okhttp的缓存是基于http协议的,也就是,假如服务器返回的http header里表明了是不支持cache的,比如这样
在这里插入图片描述

这是某一台服务器返回的response header,如果返回了这样的header的话,那么你就无法使用okhttp的cache了,只能考虑通过拦截器来自己实现。不过我觉得这样很奇怪,cache本身是避免重复请求浪费服务器资源的,所以http协议里对缓存时间,缓存策略都做了详细的规范,诸如Cache-Control,Expires,Last-Modified,max-age等等。如果绕过http协议,自身实现,你如何保证你的缓存没有过期呢?或者换个说法,你如何确定这是服务器希望你使用的缓存呢?

然后接下来文章里是一些Quick questions and answers.,通过这些Q&A,你会对okhttp的缓存有一个很好的了解

1. 如何启用okhttp的缓存?

只需要一句代码就够了:

int cacheSize = 10 * 1024 * 1024; // 10MB
OkHttpClient.Builder builder = new OkHttpClient.Builder()
        .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值