Да, есть разница!
Вы захотите сделать его частью имени файла, или некоторые браузеры не кешируют его.
От: http://thinkvitamin.com/code/serving-javascript-fast/
Согласно букве спецификации кэширования HTTP, пользовательские агенты никогда не должны кэшировать URL
со строками запроса. Хотя Internet Explorer и Firefox игнорируют это, Opera и Safari не
- чтобы убедиться, что все пользовательские агенты могут кэшировать ваши ресурсы, нам нужно сохранить строки запроса
их URL
От: http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
Джейкоб Хоффман-Эндрюс упомянул, что популярный прокси-сервер Squid не кэширует ресурсы с помощью строки запроса.
Это снижает производительность, когда несколько пользователей за прокси-кешем запрашивают один и тот же файл.
- вместо того, чтобы использовать кэшированную версию, каждый должен будет отправить запрос на исходный сервер.
(обратите внимание, что в Squid по умолчанию используется с момента изменения )
Наконец, есть отличный небольшой сервис, который позволит вам "пинговать" страницу в Интернете и проверять "кешируемость" файла (и ресурсов, которые он использует)
Кэшируемость - Проверьте Кэшируемость www.stackoverflow.com
Вы заметите, что файлы CSS и JS, которые обслуживает StackOverflow, имеют версии в строке запроса, и в результате служба сообщает:
Этот объект будет свежим в течение 1 недели.
Это можно проверить с помощью Last-Modified.
Поскольку он содержит запрос ('?') В URL, многие кэши не сохранят этот объект.