YSLOW性能测试前端调优23大规则(3)添加Expires头

YSLOW性能测试前端调优
正常如果要访问的组件,都必须建立相对应的HTTP请求从服务器端查找所需要的组件,这样每次访问都得重新从服务器读取信息,为了提高性能我们想出一种方法,如果可以使用浏览器或代理的缓存来减少HTTP请求的数量,这就是这节要介绍的Expires头。

通过添加Expires头能有效的利用浏览器的缓存能力来改善页面的性能,能在后续页面中有效避免一些不必要的HTTP请求,Web服务器使用Expires头来告诉Web客户端它可以使用一个组件的当前副本,直到指定的时间为止。

例如:Expires:Thu,16 Apr 2018 20:00:00 GMT; 他告诉浏览器缓存有效性持续到2018年4月16日为止,在这个时间之内相同的请求使用缓存,这个时间之外使用http请求。

浏览器第一次访问服务器的过程如图所示。
在这里插入图片描述
Expires有一个非常大的缺陷,它使用一个固定的时间,要求服务器与客户端的时钟保持严格的同步,并且这一天到来后,服务器还得重新设定新的时间。

HTTP1.1引入了Cathe-Control,它使用max-age指定组件被缓存多久,它以秒为单位定义一个更新窗,如果从组件被请求开始所花费的时间少于max-age,浏览器就使用缓存中的版本,这就可以避免额外的HTTP请求,消除Expires的限制。

Max-age工作原理如图所示。
Max-age工作原理
只有在用户已经访问过网站之后,长久的 Expires头才会对页面浏览产生影响。当用户第一次访问你的网站时,它不会对HTTP请求的数据产生任何影响,因为此时浏览器的缓存是空的。因此,对网站性能的改进取决于用户在访问页面时是否有完整缓存。

通常我们在说“空缓存”或“完整缓存”时,指的是与页面相关的浏览器缓存状态。如果页面中的组件没有放在缓存中,则缓存为“空”,浏览器的缓存可能包含来自其它网站的组件,但这页面没有帮助。反之,如果页面中的可缓存组件都在缓存中,则缓存是“完整的”。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值