网站访问优化之-服务器篇-添加过期或缓存控制标题Cache-Control Header

这个规则有两个方面:

对于静态组件:通过设置远期Expires标题实现“永不过期”策略
对于动态组件:使用适当的Cache-Control标题来帮助浏览器提供有条件的请求

网页设计越来越丰富,这意味着更多的脚本,样式表,图像和Flash页面。首次访问您的页面可能需要发出多个HTTP请求,但是通过使用Expires头文件,可以使这些组件可缓存。这样可以避免后续页面浏览中不必要的HTTP请求。过期头文件通常与图像一起使用,但是它们应该用于包括脚本,样式表和Flash组件的所有组件。

浏览器(和代理)使用缓存来减少HTTP请求的数量和大小,使网页加载更快。Web服务器使用HTTP响应中的Expires标头告诉客户端可以缓存组件的时间。这是一个很远的将来Expires标题,告诉浏览器,这个回应将不会陈旧,直到2010年4月15日。

Expires: Thu, 15 Apr 2010 20:00:00 GMT

如果您的服务器是Apache,请使用ExpiresDefault指令设置相对于当前日期的到期日期。这个ExpiresDefault指令的例子将Expires日期从请求时间设置为10年。

 ExpiresDefault "access plus 10 years"

请记住,如果你使用了一个远期的Expires头文件,那么只要组件的改变,你就必须改变组件的文件名。在Yahoo! 我们经常使这一步成为构建过程的一部分:版本号被嵌入到组件的文件名中,例如yahoo_2.0.6.js。

使用远期未来只有在用户已经访问过您的网站后,才会影响页面浏览。当用户首次访问您的网站并且浏览器的缓存为空时,它对HTTP请求的数量没有影响。因此,这种性能改善的影响取决于用户多久访问一次带有缓冲区的页面。(一个“准备好的缓存”已经包含了页面中的所有组件。)我们在Yahoo! 并发现带有引导缓存的页面浏览量为75-85%。通过使用远期未来的Expires头文件,可以增加浏览器缓存的组件数量,并在后续页面浏览中重新使用,而无需在用户的Internet连接上发送单个字节。