Відповіді:
html5boilerplate.com включає добре коментований файл .htaccess, який має багато стандартних налаштувань, які слід врахувати. Серед них є розумні налаштування терміну дії контенту (Expires, E-tags, ...).
Зауважте, що Last-Modified
заголовки є слабкими заголовками кешу. Поточна перевага - використовувати Cache-Control
заголовки.
У Google є гарна стаття з цього приводу.
Термін дії та кеш-контроль: максимальний вік. Вони задають "термін служби свіжості" ресурсу, тобто період часу, протягом якого браузер може використовувати кешований ресурс, не перевіряючи, чи є нова версія з веб-сервера. Вони є "сильними заголовками кешування", які застосовуються беззастережно; тобто, після їх встановлення та завантаження ресурсу браузер не видаватиме GET-запитів до ресурсу до досягнення терміну придатності чи максимального віку.
Останні зміни та ETag. Вони задають деяку характеристику ресурсу, який браузер перевіряє, щоб визначити, чи файли однакові. У заголовку Останнє змінення це завжди дата. У заголовку ETag це може бути будь-яке значення, яке однозначно ідентифікує ресурс (типові версії файлів або хеші вмісту є типовими). Last-Modified - це "слабкий" заголовок кешування, оскільки браузер застосовує евристику, щоб визначити, вибирати елемент із кешу чи ні. (Евристика відрізняється між різними браузерами.) Однак ці заголовки дозволяють браузеру ефективно оновлювати кешовані ресурси, видаючи умовні GET-запити, коли користувач явно перезавантажує сторінку. Умовні GET не повертають повну відповідь, якщо ресурс не змінився на сервері, і, таким чином, буде нижча затримка, ніж повна GET.
Я рекомендую використовувати Cache-Control
або Expires
необхідні заголовки, оскільки вони є сильними заголовками кешу. Деякі системи ігнорують дати останнього зміни.
Потім ви можете використовувати такий інструмент, як http://redbot.org,curl
або перевірити заголовки.
Last-Modified
заголовків за відсутності інших інструкцій кешування залишає період кешування аж до HTTP-клієнта. Якщо ресурс не змінено з Last-Modified
дати, його слід вважати свіжим. На відміну від цього, при використанні заголовка Expires
або Cache-Control
заголовка джерело може встановлювати явний період свіжості.
Expires
є абсолютно невідповідним заголовком для ресурсів, які не закінчуються. Деякі ресурси можуть бути змінені, але не на певний термін придатності. Суть Google полягає в тому, щоLast-Modified
потрібен умовний GET, тоді якExpires
дозволяє кеш браузера взагалі пропустити GET.