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

no-cache vs no-store Directives الفرق بين no-cache وno-store

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

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

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

من أكثر الأخطاء شيوعاً في هندسة الويب الخلط بين التوجيهين no-cache وno-store؛ فبرغم تقارب الاسمين، يختلف سلوكهما الفعلي اختلافاً جذرياً:

  • التوجيه Cache-Control: no-cache (خزّن النسخة ولكن تحقق من الخادم قبل كل استخدام): على عكس ما يوحي به اسمه الحرفي، فإن no-cache يسمح للمتصفح بحفظ النسخة في الكاش! لكنه يشترط عدم عرضها للمستخدم في أي زيارة تالية إلا بعد إرسال طلب تحقق شرطي سريع للخادم الأصلي للتأكد من عدم تغيرها. وهو مثالي لصفحات HTML المتجددة.
  • التوجيه Cache-Control: no-store (منع التخزين تماماً في أي ذاكرة): يمنع المتصفح وجميع الخوادم الوسيطة منعاً قاطعاً من كتابة أي بايت من الاستجابة في القرص أو الكاش. وهو الخيار الإلزامي للبيانات شديدة الحساسية مثل كشوف الحسابات البنكية ورموز الاسترداد السرية.

جرّب المختبر التفاعلي الآتي لمقارنة سلوك المتصفح مع التوجيهات الأربعة على السلك:

الصف 2 كود برمجي

Cache Control Directives Comparisonمقارنة توجيهات التحكم بالكاش

مقارنة توضح الفارق الحاسم بين no-cache لإعادة التحقق الشرطي و no-store لمنع التخزين نهائياً.

Shell
# no-cache: Caches resource, but MUST revalidate with server:
Cache-Control: no-cache, must-revalidate
ETag: "v3a1b2"

# no-store: NEVER write to cache/disk (for sensitive data):
Cache-Control: no-store, private
الصف 3 معاينة حية

Cache Revalidation Status Previewمعاينة إعادة التحقق 304

معاينة توضح توفير البيانات باستجابة 304 مع no-cache مقابل المنع التام للتخزين مع no-store.