Як налаштувати Apache 2.2.3 для надсилання "останнього зміненого" тощо


9

і сказати браузеру перезавантажувати об’єкт (та / або сторінку ... все на сайті), лише якщо він був змінений з часу останнього відвідування ??? htaccess, httpd.conf ... у вас є готова директива для мого випадку? Дуже тобі дякую

Відповіді:



5

Зауважте, що Last-Modifiedзаголовки є слабкими заголовками кешу. Поточна перевага - використовувати Cache-Controlзаголовки.

У Google є гарна стаття з цього приводу.

Оптимізуйте кешування

Термін дії та кеш-контроль: максимальний вік. Вони задають "термін служби свіжості" ресурсу, тобто період часу, протягом якого браузер може використовувати кешований ресурс, не перевіряючи, чи є нова версія з веб-сервера. Вони є "сильними заголовками кешування", які застосовуються беззастережно; тобто, після їх встановлення та завантаження ресурсу браузер не видаватиме GET-запитів до ресурсу до досягнення терміну придатності чи максимального віку.

Останні зміни та ETag. Вони задають деяку характеристику ресурсу, який браузер перевіряє, щоб визначити, чи файли однакові. У заголовку Останнє змінення це завжди дата. У заголовку ETag це може бути будь-яке значення, яке однозначно ідентифікує ресурс (типові версії файлів або хеші вмісту є типовими). Last-Modified - це "слабкий" заголовок кешування, оскільки браузер застосовує евристику, щоб визначити, вибирати елемент із кешу чи ні. (Евристика відрізняється між різними браузерами.) Однак ці заголовки дозволяють браузеру ефективно оновлювати кешовані ресурси, видаючи умовні GET-запити, коли користувач явно перезавантажує сторінку. Умовні GET не повертають повну відповідь, якщо ресурс не змінився на сервері, і, таким чином, буде нижча затримка, ніж повна GET.

Я рекомендую використовувати Cache-Controlабо Expiresнеобхідні заголовки, оскільки вони є сильними заголовками кешу. Деякі системи ігнорують дати останнього зміни.

Потім ви можете використовувати такий інструмент, як http://redbot.org,curl або перевірити заголовки.


2
FWIW: "слабкий" - це те, що створила Google. Expiresє абсолютно невідповідним заголовком для ресурсів, які не закінчуються. Деякі ресурси можуть бути змінені, але не на певний термін придатності. Суть Google полягає в тому, що Last-Modifiedпотрібен умовний GET, тоді як Expiresдозволяє кеш браузера взагалі пропустити GET.
Dancrumb

1
Термін слабкий - це просто семантика. Річ у тім, що використання Last-Modifiedзаголовків за відсутності інших інструкцій кешування залишає період кешування аж до HTTP-клієнта. Якщо ресурс не змінено з Last-Modifiedдати, його слід вважати свіжим. На відміну від цього, при використанні заголовка Expiresабо Cache-Controlзаголовка джерело може встановлювати явний період свіжості.
Джеффатракайд

1
"слабкий" v "сильний" визначається на tools.ietf.org/html/rfc7232#section-2.1 (зверніть увагу також на @Dancrumb)
Джон Бентлі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.