`
AutomaticThoughts
  • 浏览: 162473 次
社区版块
存档分类
最新评论

什么是304缓存

阅读更多

什么是304缓存?如何理解304与200服务器知识,前端开发优化实战

时间:2011-09-03 19:07  来源:http://www.workcss.com/  作者:蜗客div+css  点击:754次
http://www.workcss.com/ 我们知道,对于WEB页面中的JS和CCS,并不会每次都请求完整的内容,有时候会直接利用本地的缓存;而对页面本身,却往往会去加载完整内容,对于服务器来说可能每次也要生成完整的内容,并送到客户端;同样的,对于一些http接口,每次调用也会去

我们知道,对于WEB页面中的JSCCS,并不会每次都请求完整的内容,有时候会直接利用本地的缓存;而对页面本身,却往往会去加载完整内容,对于服务器来说可能每次也要生成完整的内容,并送到客户端;同样的,对于一些http接口,每次调用也会去重新生成数据,浏览器也会重新加载完整的数据;


但有这样一些页面,虽然是动态的但变动频率较小,且对于同一用户重复调用可能很多(比如说个人管理后台或者新闻首页面),我们希望像js或者ccs那样在客户端缓存起来.并且,在我们希望的时候,可以更新客户端备份的那个页面,或者接口数据.是否可以做到呢;


事实上,浏览器可以缓存js,就一定能缓存我们的动态页面;


先研究下js是如何缓存起来的:


用firebug看一下js的加载:


先强刷(ctrl+F5)一下 http://www.workcss.com/页面,观看js的加载如图

304页面
 
 
状态为200 , 查一下200的含意 :

请求成功(其后是对GET和POST请求的应答文档。)
 这是对js文件的完整加载; 再直接F5刷新下 http://www.workcss.com/ ,观看js的加载如图 状态为304,再查一下304的含意: 未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since

这是对js文件的完整加载;

再直接F5刷新下  http://www.workcss.com/,观看js的加载如图
 
 
304页面
 
 
状态为304,再查一下304的含意:

未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。

此时其实并没有从服务端加载完整文件而是去读的本地缓存;

从304的描述来看,我们知道,请求依然发出,并由服务端告知浏览器,掉用缓存;

我们可以总结出两点:

1.由于服务端只是返回简单的头信息,并没有生成完整页面,所以虽然请求依然发出,对于浏览器和服务器来说都更快更轻松了;

2.我们可以控制浏览器去更新缓存
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics