title: "Cache-Control: max-age=0, no-cache" but browser bypasses server query (and hits cache)?
body: <p>I'm using Chrome 40 (so something nice and modern).</p>
  
  <p><code>Cache-Control: max-age=0, no-cache</code> is set on all pages - so I expect the browser to only use something from its cache if it has first checked with the server and gotten a <code>304 Not Modified</code> response.</p>
  
  <p>However on pressing the back button the browser merrily hits its own cache without checking with the server.</p>
  
  <p>If I open the same page, as I reached with the back button, in a new tab then it does check with the server (and gets a <code>303 See Other</code> response as things have changed).</p>
  
  <p>See the screen captures below showing the output for the two different cases from the Network tab of the Chrome Developer Tools.</p>
  
  <p>I thought I could use <code>max-age=0, no-cache</code> as a lighter weight alternative to <code>no-store</code> where I don't want users seeing stale data via the back button (but where the data is non-valuable and so can be cached).</p>
  
  <p>My understanding of <code>no-cache</code> (see <a href="https://stackoverflow.com/a/1383359/245602">here</a> and <a href="https://stackoverflow.com/questions/18148884/difference-between-no-cache-and-must-revalidate">here</a> on SO) is that the browser must always revalidate all responses. So why doesn't Chrome do this when using the back button?</p>
  
  <p>Is <code>no-store</code> the only option?</p>
  
  <hr>
  
  <p><code>200</code> response (from cache) on pressing back button:</p>
  
  <p><img src="https://i.stack.imgur.com/4rpIF.png" alt="enter image description here"></p>
  
  <p><code>303</code> response on requesting the same page in a new tab:</p>
  
  <p><img src="https://i.stack.imgur.com/vtWdz.png" alt="enter image description here"></p>