Clover the Clever
Lord and Saviour
The servers (as in, our HTTP cache servers) and browsers are specifically instructed not to cache pages. If you look at the headers on any page as it comes to you, you’ll see that the cache-control pragma is set to private and so on. We literally only cache static assets.
We also cache fragments of pages - for instance, individual posts and comments, as well as full pages of posts/comments. These are expired upon the underlying entity being updated.
What you’re describing is your browser refusing to make a request to the server to validate the page had not changed. Chrome is a bit of a naughty citizen in this regard. Not much we can do there aside from giving it a stern talking to with the headers, but we already do.
Edit: Specifically, all dynamic pages are sent with the following:
Cache-Control:max-age=0, private, must-revalidate
This is about as “JUST RELOAD THE PAGE AND CACHE NOTHING” as you can get, headers-wise. It explicitly tells the browser to revalidate that the page has not changed.
We also cache fragments of pages - for instance, individual posts and comments, as well as full pages of posts/comments. These are expired upon the underlying entity being updated.
What you’re describing is your browser refusing to make a request to the server to validate the page had not changed. Chrome is a bit of a naughty citizen in this regard. Not much we can do there aside from giving it a stern talking to with the headers, but we already do.
Edit: Specifically, all dynamic pages are sent with the following:
Cache-Control:max-age=0, private, must-revalidate
This is about as “JUST RELOAD THE PAGE AND CACHE NOTHING” as you can get, headers-wise. It explicitly tells the browser to revalidate that the page has not changed.