Cache and page persistency.

BigMax
Fine Arts - Two hundred uploads with a score of over a hundred (Safe/Suggestive)
The End wasn't The End - Found a new home after the great exodus of 2012

So, while I was seeing >>346730 (deleted), I tried to change some tags, and I couldn’t (Oops-Derpy background). I thought: “Well, the image got deleted, non will miss it”.
 
Pressed F5, the page was still there.  
Pressed F5 again, still there.  
Pressed Ctrl+F5, still there.
 
I had to manually reload the page (and I couldn’t at first, I don’t know why) to finally prevent Chrome from reloading it from the cache and see the polite takedown notice from TFP.
 
This didn’t happen before (= some weeks ago, I guess). I guess some caching policies were changed to unload the servers a bit, but isn’t this a little too much?  
I can’t reload the page to see the tag changes either.
Clover the Clever
Princess of Love - Extra special version for those who participated in the Canterlot Wedding 10th anniversary event by contributing art.
A Perfectly Normal Pony - <@CloverTheClever> I'd pay to see Carcer in a fursuit
Always Codes Drunk - It explains a lot
From the Night - I have technically banned myself a bunch of times...
Since the Beginning  - User number zero

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.
BigMax
Fine Arts - Two hundred uploads with a score of over a hundred (Safe/Suggestive)
The End wasn't The End - Found a new home after the great exodus of 2012

It seems doesn’t work like that in Chrome, that caches the first answer (private), and doesn’t care if becomes stale (max-age=0).  
I reckon this doesn’t sound exactly right, but that’s how the most used browser in the world behaves.  
Why don’t you just use “no-cache”? This literally means “cache nothing”.
 
Just to be sure, PHP automatically sets:  
Cache-Control: no-cache, no-store  
Pragma: no-cache  
Expires: a date in the past  
This results in a quite solid technique to prevent caching, which could make it through various bugs and legacy interpretations of the browsers through the years.
Clover the Clever
Princess of Love - Extra special version for those who participated in the Canterlot Wedding 10th anniversary event by contributing art.
A Perfectly Normal Pony - <@CloverTheClever> I'd pay to see Carcer in a fursuit
Always Codes Drunk - It explains a lot
From the Night - I have technically banned myself a bunch of times...
Since the Beginning  - User number zero

Lord and Saviour
Fair enough; I’ve poked a friend at Google to try and figure out what the Chromium guys are thinking with their implementation but in the meantime we’ll tweak the headers. I don’t think we set no-cache et al because there was a glorious time in the history of the site when we figured we might be able to do full page caching.
 
Also if you’re interested in getting a bit more hands-on with the site you should maybe drop me an email if you like
Interested in advertising on Derpibooru? Click here for information!
Sky Railroad Merch Shop!

Help fund the $15 daily operational cost of Derpibooru - support us financially!

Syntax quick reference: **bold** *italic* ||hide text|| `code` __underline__ ~~strike~~ ^sup^ %sub%

Detailed syntax guide