title: Can I rely on ETags for cache control
body: <p>Our current deployment uses a home build cache busting approach: We have mapping file that contains hashes of our javascript files (this mapping is created on application startup). The values in this file are then used in our templates to generate a script tag that includes a GET parameter for cache busting i.e <code>&lt;script src="/static/js/somefile?v=adg34d&gt;</code> </p>
  
  <p>I'm currently converting our entire page to use RequireJS and I would like to get rid of these cache busting parameters since they would be difficult to implement. Our HTTP servers are configured to add a correct <code>Last-Modified</code> and <code>ETag</code> header to each asset resource they serve. If I look at the Chrome Web Console I can see that the browser also uses it and gets a correct <code>304</code>. While I trust Chrome to get this right there are of course other browsers.</p>
  
  <p><strong>The question is</strong>: If I only use <code>Last-Modified</code> and <code>ETag</code> headers can rely on the browser to get it right or do I really <em>need</em> a cache-busting parameter?</p>
  
  <p>I only need to support:</p>
  
  <ul>
  <li>Opera</li>
  <li>Firefox</li>
  <li>Chrome</li>
  <li>IE >= 8</li>
  <li>Safari >= 5</li>
  </ul>