The following tutorials taught me how to make PHP pages cacheable. If you do not manually set your PHP page’s HTTP headers, that page is generally uncacheable by browsers, reverse proxies, HTTP accelerators, etc. That might make sense for highly dynamic pages or personal/sensitive information, but there are plenty of situations where PHP generated content can and should be cached.
- Ned Martin’s Site Guide — Caching
- PHP, HTTP/1.1 dates and Conditional Get
- Implementing support for Conditional Get with PHP
- Cache-Friendly PHP Applications (I think this is copied from a book without permission
) - PHP Cache Control script
- Cache Control with PHP
There is a typo in Ned Martin’s guide: “Last-Modified” is hyphenated! (Took me forever to figure out why I couldn’t set that header.)
Use the Cacheability Engine and the Live HTTP Headers extension for Firefox to debug as you go. Remember that shift-clicking reload/refresh forces the browser to fetch a fresh copy of the page.
Apologies for the short and sporadic posting. I’m busy hacking Zenphoto for another project.
P.S. Another plug for my host NearlyFreeSpeech.NET; Squid HTTP acceleration on shared hosting for mere pennies rocks! The availability of Squid made me look into HTTP caching for PHP pages.
If you liked this post, please subscribe to my feed. Thanks for visiting!

