Обычно это делается для того, чтобы браузер получал новую версию, когда сайт обновляется новой версией, например, в рамках нашего процесса сборки у нас будет что-то вроде этого:
/Resources/Combined.css?v=x.x.x.buildnumber
Поскольку это меняется с каждым новым нажатием кода, клиент вынужден получать новую версию только из-за строки запроса.Посмотрите на эту страницу (во время этого ответа), например:
<link ... href="http://sstatic.net/stackoverflow/all.css?v=c298c7f8233d">
Я думаю, что вместо номера редакции SO-команда пошла с файловым хешем, что даже лучше, даже сВ новой версии браузеры принудительно брали новую версию только тогда, когда файл фактически изменяется.
Оба эти подхода позволяют установить заголовок кэша на что-то смехотворно длинное, скажем, 20 лет ... но когда он меняется, вам не нужно беспокоиться об этом заголовке кэша, браузер видит другоеquerystring и обрабатывает его как новый файл.