Search code examples
androidhttppicassookhttphttp-caching

HTTP static resources caching forever stategy


In Effective Android HTTP Jesse Wilson mentioned the following:

Serving static resources like images? Use a permanent URL and let it cache forever

I am using Picasso with a specific OkHttp instance for fetching and caching images. I am wondering how to setup the let it cache forever strategy?

I can only think about overriding the HTTP cache control header max-stale (Cache-Control: max-stale=)with the highest possible value, is there another (better) way?


Solution

  • Best way is to configure your server to include a long max-age. For example, specify 365 days with this header:

    Cache-Control: max-age=31536000
    

    If you want to enable unlimited caching on the client, you can use a long max-stale:

    Cache-Control: max-stale=31536000