最近在看一个《手把手教你在 Google App Engine Python 版上开发博客》,之前一篇博文中也提到了。开篇第一章,说到缓存控制。 需要考虑到的差不多就两种:静态文件,在客户端呆多久都行,其一;存储在数据中的大段数据,或者动态生成的其他内容,图片、压缩包等等,其二。参考 Yahoo 的最佳实践,对静态文件需要做的就是尽量减少 HTTP 请求数,弄些 Sprites、Gzip 掉数据,并在返回数据的时候在表头里加上 Expires 或者 Cache-Control。如: Expires: Thu, 15 Apr 2010 20:00:00 GMT Cache-Control: max-age=220752000; must-revalidate 格林尼治时间,max-age 的单位是毫秒。后边这个 must-revalidate 用来处理网站还在频繁更新、动态数据的情况。让浏览器请求数据时先向服务器确认数据有没有更新。校验的方式有两种:If-Modified-Since (HTTP 1.0)和 If-None-Match (HTTP 1.1)。如果确认数据没有变动,便会返回一个 HTTP 304。 服务器返回表头示例: Last-Modified: Thu, 15 Apr 2009 20:00:00 GMT Etag: “3e86-410-3596fbbc” 浏览器处理的时候就会记住这些,下次请求是,便把这些数据丢回服务器,看看有没有变动: If-Modified-Since: Thu, 15 Apr 2009 20:00:00 GMT [...]
Pages
Categories
Archives
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- June 2011
- May 2011
- April 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008