Публікуйте зображення, які спільний проксі може використати повторно
Надайте публічно повторно використовуваним відповідям із зображенням явний строк свіжості й валідатори, а потім тлумачте перезавантаження в браузері окремо від звичайного повторного використання кешу.
Для відповіді із зображенням, що проходить через видимий для HTTP спільний кеш, опублікуйте явний строк і валідатор. Коли зображення безпечно використовувати повторно між користувачами, приклади заголовків відповіді такі:
Cache-Control: public, max-age=604800
ETag: "image-v4"
Строк у секундах; 604800 — це один тиждень. Використовуйте public лише для вмісту, призначеного для повторного використання між користувачами.
Якщо браузеру й спільному проксі потрібні різні строки, s-maxage задає строк спільного кешу. Наприклад, max-age=3600 разом із s-maxage=604800 дає спільному кешу довший період свіжості.
Expires — це дата, а не тривалість
Expires приймає позначку часу у форматі дати HTTP. max-age перекриває це поле, а для спільних кешів перевагу має s-maxage. Створюйте будь-яку дату Expires під час формування відповіді.
Перезавантаження може запросити валідацію
Запит, що містить Cache-Control: no-cache, вимагає успішної валідації на джерелі, перш ніж збережена відповідь буде використана повторно. Це може статися навіть тоді, коли звичайна політика свіжості відповіді інакше дозволяла б повторне використання.
Валідатор дає змогу кешу ефективно перевірити незмінене зображення. Відповідь 304 може підтвердити збережене подання, не передаючи байти зображення з джерела повторно. Тож трафік до джерела сам по собі не означає, що кешований об'єкт було відкинуто.
Порівнюйте звичайне повторне використання та явні перезавантаження, переглядаючи політику.