title: Javascript versioning to avoid caching, difference in these practices?
body: <p>If I decide to use last_modified_time of a javascript or css file, and use the unix timestamp of it as a key in the name to bust cache when file is modified.
  What is the difference between following two practices ?
  filename is : my_script.js  and timestamp is : 1321951817</p>
  
  <p>1/ File gets included as :
  <code>&lt;script type="text/javascript" src="http://example.com/js/my_script.js?v=1321951817"&gt;&lt;/script&gt;</code>
  Hence,the query string parameter creates a new cache everytime the <code>v</code> is changed.</p>
  
  <p>2/ File gets included as :
  <code>&lt;script type="text/javascript" src="http://example.com/js/my_script.1321951817.js"&gt;&lt;/script&gt;</code>
  The filename changes with every modification, a rewrite rule removes the timestamp and points the requested url to <code>my_script.js</code></p>
  
  <p>3/ <strong>UPDATE: ONE MORE METHOD BASED ON ANSWERS BELOW</strong> : File is renamed and get included as :
  <code>&lt;script type="text/javascript" src="http://example.com/js/my_script.1321951817.js"&gt;&lt;/script&gt;</code>
  The filename is changed and NO REWRITE RULE is used.</p>
  
  <p>Question : Are these two techniques inherently the same, or are there any advantages/disadvantages of using query string parameters instead of direct file name.</p>