Термін дії HTTP-заголовка та контроль кешу
1. Концепція
Кеш-контроль використовується для керування кешуванням HTTP (можливо, частково не реалізований у HTTP/1.0, реалізовано лише Pragma: без кешу)
Формат у пакеті:
Cache-Control: cache-directive
Кеш-директива може бути такою:
Запит: | "Без кешу" | "Без магазину" | "max-age" "=" дельта-секунди | "макс-застарілий" [ "=" дельта-секунди ] | "min-fresh" "=" дельта-секунди | "Без трансформації" | "Only-if-cached" | "кеш-розширення"
Відповідь: | «Публічний» | "private" [ =" <"> польова назва <"> ] | "no-cache" [ "=" <"> поле <"> ] | "Без магазину" | "Без трансформації" | "Обов'язково-підтверджено" | "проксі-ревалідація" | "max-age" "=" дельта-секунди | "s-maxage" "=" дельта-секунди | "кеш-розширення"
Частина опису: Чи поділяються на кешовані чи ні Public вказує, що відповідь може бути кешована будь-якою областью кешу. Приватне означає, що повністю або частина відповіді одного користувача не може бути оброблене спільним кешом. Це дозволяє серверу описувати лише тоді, коли користувач Повідомлення з частковою відповіддю, яке не є дійсним для запитів від інших користувачів. no-cache означає, що запит або відповідь не можна кешувати (HTTP/1.0 замінюється на no-cache Pragma) Залежно від того, що можна кешувати No-store використовується для запобігання ненавмисній публікації важливої інформації. Надсилаючи повідомлення-запит, запит і повідомлення відповіді не будуть кешовані. Тайм-аут згідно з кешом Максимальний вік означає, що клієнт може отримати відповідь із життям не більше заданого часу (у секундах). min-fresh означає, що клієнт може отримати відповідь із часом відповіді меншим за поточний час плюс зазначений час. Max-stale означає, що клієнт може отримувати відповіді після тайм-ауту. Якщо ви вкажете значення для max-stale повідомлення, тоді клієнт може Отримувати відповіді, які перевищують визначене значення понаднормового періоду. Терміни дії позначають час існування, що дозволяє клієнту не перевіряти (не робити запит) до цього часу, що еквівалентно максимальному віку Ефект. Але якщо вони існують одночасно, їх перезаписує максимальний вік Cache-Control. Формат: Expires = "Закінчується" ":" HTTP-дата Наприклад
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Застосування Термін дії набору та керування кешом через META через HTTP <meta http-equiv="Cache-Control" content="max-age=7200" /> <meta http-equiv="Expires" content="Понеділок, 20 липня 2009 23:00:00 GMT" /> Наведені вище налаштування — лише приклади, і ви можете використати одне з них. Якщо ви пишете це так, це дійсно лише для веб-сторінки, а не для зображень чи інших запитів на веб-сторінці, і не створює кешу. Таким чином, у клієнта буде більше запитів, і хоча це просто перевірка статусу «Останнє змінено», кількість запитів точно вплине на швидкість перегляду. Якщо хочете додати кеш до файлу, можна скористатися модулем mod_expire Apache, який записується як <IfModule mod_expires.c> ExpiresActive On Термін діїЗа замовчуванням "доступ плюс 1 день" </IfModule> Пам'ятаю, що ExpiresActive встановлено на Включено, спочатку я його не вмикав, і здається, що незалежно від того, наскільки YSlow працює, я не можу знайти механізм кешування. Якщо додати так, то за замовчуванням буде все. Якщо ви хочете націлитися на окремі типи MIME, ви можете: ExpiresByType image/gif "доступ плюс 5 годин 3 хвилини" Див. модуль Apache mod_expires Крім того, коли ви натискаєте «Оновити» у браузері, всі запити, надіслані клієнтом, мають значення max-age=0, що означає, що запит перевірений і надісланий на сервер Якщо попросити перевірити кеш, а потім оновити кеш, зазвичай отримаєте 304 Не змінено, тобто змін немає.
|