Все, что я прочитал о заголовках «expires» (http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/, например), указывает на то, что при использовании преимуществ кэширования таким образом, вам необходимо «дактилоскопировать» имена файлов, чтобы при изменении статических ресурсов браузер перестал использовать версию из кэша и вместо этого извлеките новую.
Однако в моих тестах с IIS7 в качестве внутреннего веб-сервера и с использованием браузеров IE 7, FF и Chrome мне это не требовалось. Если я изменил файл на веб-сервере - что-то вроде «myfile.js», то веб-сервер отправил заголовок «последней модификации» в качестве даты изменения этого файла, и все браузеры заметили это изменение. Они вернули 200 для первого запроса после изменения файла, и последующие запросы, казалось, извлекали из кэша.
Конечно, я что-то упускаю, но я не знаю, что это. Пожалуйста, просветите меня.