浏览器缓存策略

浏览器缓存策略

-----zr

概述:

缓存Cache的思想可以应用在WEB软件分层的各个层面,它是一种内部处理机制。

数据库本身有缓存,持久层也可以缓存,比如Hibernate12级缓存;

业务层也可以缓存,但这个层别是一个过程域,一般不会设置缓存;

表现层也可以实现缓存,一般实现在app server上的缓存机制;

另外Browser浏览器也有缓存,实现在web server上的缓存机制。

总体来说,越是表层的缓存效果越好,越是底层的缓存影响较为深远,不容易控制。

概念:

浏览器缓存即HTTP Cache,指的是web工程师为了加快用户浏览速度,使用浏览器在磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以直接从用户的本地磁盘上获取上次缓存的文档,而不用再到服务端获取,这样就可以加速页面的阅览。

作用:

好的浏览器缓存可以减少对网络带宽的占用,可以提高访问速度,提高用户的体验,还可以减轻服务器的负担。

使用缓存过程:

如果使用浏览器缓存,那么当一个客户端请求web服务器,请求的内容可以从以下几个地方获取请求内容:服务器、浏览器缓存中或缓存服务器中。这取决于服务器端输出的页面信息。页面文件有三种缓存状态:

1.      最新的:选择不缓存页面,每次请求时都从服务器获取最新的内容;

2.      未过期的:在给定的时间内缓存,如果用户刷新或页面过期则去服务器请求,否则将读取本地的缓存,这样可以提高浏览速度;

3.      过期的:也就是陈旧的页面,当请求这个页面时,必须进行重新获取。

HTTP  Cache几个常用属性:

1.Cache-Control

请求:

no-cache(不要缓存的实体,要求现在从WEB服务器去取)

max-age:(只接受 Age 值小于 max-age 值,并且没有过期的对象)

max-stale:(可以接受过去的对象,但是过期时间必须小于max-stale 值)

min-fresh:(接受其新鲜生命期大于其当前 Age min-fresh 值之和的缓存对象)

响应:

public(可以用 Cached 内容回应任何用户)

private(只能用缓存内容回应先前请求该内容的那个用户)

no-cache(可以缓存,但是只有在跟WEB服务器验证了其有效后,才能返回给客户端)

max-age:(本响应包含的对象的过期时间)

ALL:  no-store(不允许缓存)

2.ETag

就是一个对象(比如URL)的标志值,就一个对象而言,比如一个 html 文件,如果被修改了,其 Etag 也会别修改, 所以,ETag 的作用跟 Last-Modified 的作用差不多,主要供 WEB 服务器 判断一个对象是否改变了。比如前一次请求某个 html 文件时,获得了其 ETag,当这次又请求这个文件时,                浏览器就会把先前获得的 ETag 值发送给  WEB 服务器,然后 WEB 服务器会把这个 ETag 跟该文件的当前 ETag 进行对比,然后就知道这个文件有没有改变了。         

3.Expired

WEB服务器表明该实体将在什么时候过期,对于过期了的对象,只有在跟WEB服务器验证了其有效性后,才能用来响应客户请求,是 HTTP/1.0 的头部,例如:ExpiresSat, 23 May 2009 10:02:12 GMT.

4.Last-Modified

WEB 服务器认为对象的最后修改时间,比如文件的最后修改时间,动态页面的最后产生时间等等。例如:Last-ModifiedTue, 06 May 2008 02:42:43 GMT

5.If-Modified-Since

如果请求的对象在该头部指定的时间之后修改了,才执行请求的动作(比如返回对象),否则返回代码304,告诉浏览器该对象没有修改。例如:If-Modified-SinceThu, 10 Apr 2008 09:14:42 GMT

If-Unmodified-Since:如果请求的对象在该头部指定的时间之后没修改过,才执行请求的动作(比如返回对象)。

实践验证:

1.      关于浏览器的静态缓存:

下面是静态页面http_cache.htm的内容,<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值