استراتژی مناسب برای cache کردن ریکوئستها

توی چند روز اخیر، یک سری آپدیتها در ui/ux وبسایت (دیسکورس) اتفاق افتاده. یکیش که نظرمو جلب کرد و به نظرم ux خوبیه اینه که وقتی روی آواتار یک کاربر کلیک میکنیم، یه باکس خالی باز میشه و وقتی جواب ریکوئست اومد، محتوا رو نشون میده داخل باکس.
توی کنسول بروزر داشتم نگاه میکردم دیدم برای هر کلیک واقعا داره api call انجام میده. در حالی که به نظرم کاملا اوکیه اگه همچین چیزی کش بشه و با هر کلیک نیاز به دریافت ۷ تا ۱۱ کیلوبایت (چندتا کاربر رو تست کردم) نباشه و وقتی یک بار این ریکوئست رو برای یک کاربر انجام میدیم، توی بروزر کش بشه. (مگه کاربر چقدر پروفایلشو عوض میکنه؟)

بعد داشتم به روشهای پاک سازی این مدل اطلاعات فکر میکردم. روشهایی مثل last access یا روشهای ساده تر مثل queue یا max-age.
به نظرتون کدوم روش برای کش کردن همچین اطلاعاتی مناسب تره؟ و آیا ابزاری (مثلا لایبرری js یا indexed-db) برای ساده کردن این کار وجود داره؟


پ.ن:
توی این مثال خاص، نیازی به cache control نیست. چون مگه من چند بار در روز قراره روی آواتار یه نفر کلیک کنم؟! ولی در کل میخواستم بدونم برای سناریوهای شبیه به این که میدونیم اون دیتا قرار نیست هر ۵ثانیه عوض بشه و چیزیه که احتمالا هر ماه عوض میشه و مسلما ما هرروز قراره صفحه رو ریفرش کنیم (و کش‌ها اتوماتیک پاک میشن) چه روشی مناسب‌تره. (یا برای زمانی که آپدیت بودن دیتا حیاتی نیست و مصرف پهنای باند و فشار به سخت‌افزار سرور حیاتی تره)
و بحثم اینه که برای http requestهایی مثل دریافت فایلهای استاتیک، خود webserver یه هدر میفرسته برای تعیین تایم اکسپایر شدن اون دیتا. ولی زمانی که میخوایم یه api بزنیم، همچین چیزی وجود نداره پس باید خودمون هندل کنیم.