今天无意看到了一篇关于介绍http协议的文章,写的很详细。于是乎我想到了在多年的APP开发中客户端会增加很多本地缓存来提高应用响应速度减少网络开销,但是各个页面的缓存时间和逻辑完全靠的是研发同学的经验,并且应用上线以后发现缓存时间不合理就需要再发布版本才能优化。再来对于缓存时间的处理对于客户端需要话较多的时间来处理每一个页面。
其实现在的APP都是通过接口来和服务器实现数据同步的,并且基本都是使用http(s)协议。而http协议就已经很好的为我们解决了客户端的缓存问题,那么我们先看下http1.1协议中定义的和缓存相关的头:
Expires:指示响应内容过期的时间,格林威治时间GMT
Cache-Control:更细致的控制缓存的内容
Last-Modified:响应中资源最后一次修改的时间
ETag:响应中资源的校验值,在服务器上某个时段是唯一标识的。
Date:服务器的时间
If-Modified-Since:客户端存取的该资源最后一次修改的时间,同Last-Modified。
If-None-Match:客户端存取的该资源的检验值,同ETag。
http1.1协议已经很清楚的定义了服务器端控制客户端缓存的关键参数,浏览器会通过这些头信息来做缓存。那么我们把APP当做浏览器来做就好了,我们只需要一个支持的框架就好:)
我整准备在我的下一个项目使用这些东西,尽量让其规范化,并且提供一个服务器和客户端的框架出来。这个框架会包括客户端的框架和服务器端的框架,并且提供一个可视化的服务器端调试程序和接口自动检测机制