高性能网站建设指南 — 笔记– 4.通过Http头来设置缓存

通过Http头设置缓存,可以减少重复的HTTP请求  — 因为第二次下载时只需从浏览器缓存中去拿。

有两种头可以设置。

   1. Expires: “此图片将在2010年12月30日过期,在此之前的重复请求可以使用浏览器中的缓存”

   2. Cache-Control max-age: “在未来10年里都可以使用浏览器中的缓存来获得此图片”

第一种头用的是绝对时间,这就存在时钟同步的问题,而且真正到期后服务器端还要更新一下这个日期;第二种头的问题在于它不适用于只支持Http 1.0的浏览器

第三种方案是:如果你用的是Apache服务器,可以使用mode_expires指令来设置超时。它可以避免上述第二种方案的问题。

==============================================================================

现在的问题是,如果静态内容真的变了,需要浏览器刷新缓存怎么办? 办法是修改静态内容的文件名。当它被请求时,浏览器中由于没有相应的缓存,所有就会请求服务器以重新下载。

当然这会带来版本管理上的负担。

=====================================================================

注意:如果没有设置缓存头浏览器仍会试图通过缓存来提高效率;第二次请求一个图片时,浏览器会先发送一个 Conditional Get Request问一下此内容是否已被修改,如果没有的话就使用缓存。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.