Веб-сайт с оптимальным управлением кешем

Моя цель
Я бы хотел, чтобы браузеры кэшировали весь мой сайт, но загружали только статический контент, когда меняли один или несколько файлов.

Моя ситуация
После некоторых исследований я нашел способ сделать это. То есть добавить Far Future Expires Header в мой htaccess файл и добавить к ним запросы с помощью функции filemtime() .

Проблема
Когда я нажимаю на адресную строку и набираю адрес своего веб-сайта в firefox, тогда отображаются Firebug
38.3 KB (36.4 KB from cache)

Когда я нажимаю F5 в firefox, Firebug показывает:
241.1 KB (10.9 KB from cache)

Теперь я попытался сделать то же самое с Google, и они отправляют HTTP-заголовок 304 назад. Я много читал об ETag и заголовке Last Modified, но я слышал много людей, которые говорили, что они не очень надежны.

Мой вопрос
Что было бы лучшим решением, если бы я хотел отправить HTTP-заголовок 304 обратно со статическим содержимым, если пользователь нажимает на F5, например Google?

Я задаю этот вопрос, потому что часто посещаю сайт и использую F5, чтобы узнать, есть ли какая-то новая информация. Не перезагружать изображения и т. Д.

Обновить
Похоже, что Firefox контролирует способ использования кеша, и я бы хотел использовать кеш, когда пользователь нажимает F5.

Solutions Collecting From Web of "Веб-сайт с оптимальным управлением кешем"

Самой целью перезагрузки является перезагрузка страницы. Мастера заголовка сервера не существует, если браузер был пропущен, чтобы игнорировать кеши, когда пользователь конкретно запрашивает его.

Решение для Google заключается в том, что вы проверяете, отправил ли искатель заголовок If-Modified-Since с:

 if ($_SERVER["HTTP_IF_MODIFIED_SINCE"]) { header("HTTP/1.0 304 Not Modified"); exit(); } 

Этот трюк может работать для браузеров, но не в режимах принудительной перезагрузки , таких как SHIFT + RELOAD Firefox.

Вы также можете использовать новую функцию кэширования приложений.
Я не знаю, каков ваш целевой браузер, но большинство браузеров поддерживали его в течение нескольких версий.
Таким образом вы можете определить, что ваша статика загружается только один раз.

Для получения очень хорошей информации по этому вопросу вы можете ознакомиться с этой страницей:
http://diveintohtml5.ep.io/offline.html

Я не уверен, что понимаю смысл вашего вопроса, но вы можете указать код ответа в php с функцией заголовка, независимо от того, нажимает ли ваш пользователь кнопку или нет.

http://php.net/manual/en/function.header.php