Caching Tutorial
By Mark Nottingham
2007-12-22
Tips for Building a Cache-Aware Site
Besides using freshness information and validation, there are a number of
other things you can do to make your site more cache-friendly.
- Use URLs consistently — this is the golden
rule of caching. If you serve the same content on different pages, to
different users, or from different sites, it should use the same URL.
This is the easiest and most effective may to make your site
cache-friendly. For example, if you use “/index.html” in your HTML as a
reference once, always use it that way.
- Use a common library of images and other elements and
refer back to them from different places.
- Make caches store images and pages that don’t change
often by using a
Cache-Control: max-age header with a large
value. - Make caches recognize regularly updated pages by
specifying an appropriate max-age or expiration time.
- If a resource (especially a downloadable file) changes, change
its name. That way, you can make it expire far in the future,
and still guarantee that the correct version is served; the page that
links to it is the only one that will need a short expiry time.
- Don’t change files unnecessarily. If you do,
everything will have a falsely young
Last-Modified date. For instance,
when updating your site, don’t copy over the entire site; just move the
files that you’ve changed. - Use cookies only where necessary — cookies are
difficult to cache, and aren’t needed in most situations. If you must use
a cookie, limit its use to dynamic pages.
- Minimize use of SSL — because encrypted pages are not
stored by shared caches, use them only when you have to, and use images
on SSL pages sparingly.
- use the Cacheability Engine
— it can help you apply many of the concepts in this tutorial.
Tutorial Pages:
»
What’s a Web Cache? Why do people use them?
»
Kinds of Web Caches
»
Aren’t Web Caches bad for me? Why should I help them?
»
How Web Caches Work
»
How (and how not) to Control Caches
» Tips for Building a Cache-Aware Site
»
Writing Cache-Aware Scripts
»
Frequently Asked Questions
»
Implementation Notes — Web Servers
»
Implementation Notes — Server-Side Scripting
»
References and Further Information
|

|