انتقل إلى محتوى الدرس

Fresh vs Stale Cache States النسخة الصالحة مقابل منتهية الصلاحية

أتقن منظومة التخزين المؤقت في HTTP وفق معيار RFC 9111: الفرق بين الكاش الخاص والكاش المشترك، وحساب الصلاحية، وتوجيهات Cache-Control والفرق بين no-cache وno-store، والتحقق الشرطي عبر ETag وكود 304، واستراتيجية كسر الكاش.
2 صفوف تعليمية
تكنولوجيا الويب
1,629 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تمر كل نسخة محفوظة داخل الكاش بحالتين زمنيتين تحددهما معادلة عمر النسخة الحالي (Age‏) مقابل مدة الصلاحية الكلية (Freshness Lifetime‏):

  • حالة النسخة الطازجة (Fresh‏): عندما يكون الوقت المنقضي منذ إصدار الاستجابة أقل من مدة الصلاحية المحددة (مثلاً max-age=3600 ثانية ولم يمر سوى 500 ثانية). هنا يستخدمها المتصفح فوراً دون أي اتصال بالخادم.
  • حالة النسخة المنتهية (Stale‏): عندما يتجاوز عمر النسخة مدة الصلاحية. من المهم معرفة أن المتصفح لا يحذف النسخة المنتهية فوراً، بل يحتفظ بها في الذاكرة ويرسل طلباً شرطياً صغيراً لسؤال الخادم إن كانت لا تزال صالحة.

يحسب المتصفح والخادم الوسيط زمن الصلاحية عبر حقول الرأس القياسية الآتية (حيث تتفوق تعليمة max-age دائماً على حقل Expires القديم عند وجودهما معاً):

  • HTTP/1.1 200 OK
  • Date: Thu, 05 Nov 2026 12:00:00 GMT
  • Cache-Control: public, max-age=3600
  • Expires: Thu, 05 Nov 2026 13:00:00 GMT
  • Age: 1200
الصف 2 ملاحظة هامة