代码改变世界

浏览器的缓存机制

2012-11-30 12:04  cczw  阅读(1121)  评论(0编辑  收藏  举报

这两天,拾前人牙慧了解了下浏览器的缓存机制,备忘一下。

一般来说,浏览器都是有缓存的,缓存机制可以通过http请求协议,和html的meta标签来设定,我们前端it牛就只关注后者吧,前者需要服务端或者本地程序自己定义。

  这种方式用一句广告词来说就是”so easy!“,只需要如下代码:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

  meta标签很牛叉,它提供了很多属性来定义页面的文档信息,包括设置搜索引擎关键字啊,编码啊,作者啊,描述啊,语言啊等等,同样也提供了修改http信息的属性。比如上面的示例就是http请求协议的缓存定义no-cache,无缓存。其实我们可以从语义上来分析:http-equiv 这个属性服务器在处理的时候会把它自动加载到浏览器的头信息里。比如我如下设置:

<meta http-equiv="charset" content="utf-8">
<meta http-equiv="expires" content="30 Nov 2012">

  那么你就设置了页面的过期时间和页面编码,浏览器的头信息就会有下面这样的信息:

content-type: text/html
charset:utf-8
expires:30 Nov 2012

  值得一提的是 expires貌似是http1.0的东西,对现在http1.1来说貌似作用不大。

附上一张别人的两张图,描述一下浏览器请求的原理:

第一次请求:

再次请求: