您的位置:首页 > 理论基础 > 计算机网络

基于http协议的app缓存机制

2012-11-27 19:14 253 查看
在讨论“基于HTTP协议的app缓存机制”这个专题前,先来了解下app客户端现有的缓存机制:

用户首次进入客户端首页时会从服务器获取最新数据,并将数据缓存至本地,如若不重启客户端,将不再向服务器获取最新数据。
这个缓存机制非常简单,发挥了一定的缓存作用,但是存在以下几点问题:

1.不够灵活,无法有效控制数据更新的时机
2.不够透明,app开发人员必须熟知这种缓存机制的具体实现细节
3.不够通用,每个页面/接口需要重复编写冗余的代码,无法在各个项目间进行移植

说到这里,我想我们需要引入一种基于架构的更加强大、更加完善的缓存机制,这个缓存机制是什么样子的呢?
其实很简单,我们每天都在使用,甚至我们离不开它-浏览器,相信细心的你在使用它们时会有如下体验:
1.重复访问一个页面会打开得更快
2.有时网络掉线了仍然可以打开页面
3.作为技术人员,我们有时还碰到一个页面死活不肯更新的情况

浏览器种类很多:chrome、IE、firefox、Safari、operai等等,但无论何种浏览器它们都采用HTTP作为通信协议,
我们的app也不例外。app和浏览器一样在用户和服务器之间充当代理的角色,为用户做了很多隐性的操作,
缓存只是其中一项(本文不试图介绍浏览器缓存机制的实现细节,有兴趣的同学可以查阅http白皮书)。
浏览器采取的缓存机制我们完全可以借鉴,那么是否有先驱已经将浏览器的缓存机制搬到app,并形成成熟可用的组件?

幸好,大牛们为开源付出了大量心血,有现成的解决方案,当然这一切还需要大量的测试和验证!

1.HTTP Response Caching for Java and Android
http://blog.csdn.net/parcel8437/article/details/8072316 https://github.com/candrews/HttpResponseCache 2.HTTP Response Caching for ios
https://devcenter.heroku.com/articles/ios-network-caching-http-headers
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: