Кэширование статических ресурсов HTTP навсегда

В статье Эффективный Android HTTP Джесси Уилсон упомянул следующее:

Обслуживание статических ресурсов, таких как изображения? Используйте постоянный URL-адрес и пусть он кешируется навсегда

Я использую Picasso с определенным OkHttp экземпляр для выборки и кэширования изображений. Мне интересно, как настроить стратегию let it cache forever?

Я могу думать только о переопределении заголовка управления кешем HTTP max-stale (Cache-Control: max-stale=) с максимально возможным значением, есть ли другой (лучший) способ?


person Niqo    schedule 24.04.2014    source источник


Ответы (1)


Лучший способ — настроить сервер так, чтобы он включал длинный max-age. Например, укажите 365 дней с этим заголовком:

Cache-Control: max-age=31536000

Если вы хотите включить неограниченное кэширование на клиенте, вы можете использовать длинный max-stale:

Cache-Control: max-stale=31536000
person Jesse Wilson    schedule 24.04.2014
comment
Есть ли причина, по которой это считается лучше, чем длинный Expires? - person Umopepisdn; 08.01.2016
comment
Это предпочтительно в соответствии с RFC 7234, спецификацией кэширования HTTP. «Если ответ включает поле Cache-Control с директивой max-age (раздел 5.2.2.8), получатель ДОЛЖЕН игнорировать поле Expires». - person Jesse Wilson; 09.01.2016