If browser caching is a mess in your head, the article below will help you sort it out:
➡️ https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers
My take:
The article above covers the main caching scenarios, which is enough for 99% of
tasks. For the remaining 1%, you can look up the description of all
Cache-Control header properties
(here)
or search for your specific case.
P.S. If your project uses NestJS, you can experiment with CacheInterceptor,
as shown here