Если все соответствует спецификациям, вам не нужно делать ничего особенного.HTTP уже имеет механизмы для обработки этого.Браузер должен отправить заголовок If-Modified-Since с датой получения или заголовок If-None-Match с ETag кэшированной копии.Сервер проверит время модификации (или ETag, который должен включать время модификации в расчете) файла на сервере и, если время мода меньше, чем задано браузером, или ETag совпадет, вернет304 Не модифицированный ответ.Браузер должен использовать свою кэшированную копию только тогда, когда он получает ответ 304.
Единственная проблема в этом - кэширование прокси-серверов, которые либо игнорируют любой предоставленный сервером заголовок Expires, либо предполагают, что он будет исправен в будущем, если его не дать., в этом случае вы можете отправить Cache-Control заголовок с директивой must-revalidate .
Конечно, браузеры или прокси могут не соответствовать,в этом случае другие ответы показывают, как заставить браузер повторно извлечь ресурс.