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

Conditional Cache Revalidation التحقق الشرطي ETag وكود 304

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

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

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

ماذا يحدث عندما تنتهي مدة صلاحية ملف مخزن في الكاش ويصبح في حالة Stale؟ بدلاً من إعادة تنزيل الملف بالكامل وإهدار البيانات، ينفذ المتصفح عملية التحقق الشرطي (Conditional Revalidation‏) باستخدام ثنائيات التحقق:

  1. 1. التحقق ببصمة الكيان (ETag → If-None-Match — الأدق والأحدث): يرسل الخادم مع الملف في المرة الأولى حقل الرأس ETag: "v2-8f9d1a" الذي يمثل بصمة فريدة لمحتوى الملف. وعند انتهاء الصلاحية، يرسل المتصفح طلب GET مرفقاً بحقل الرأس الشرطي If-None-Match: "v2-8f9d1a".
  2. 2. التحقق بتاريخ آخر تعديل (Last-Modified → If-Modified-Since‏): يرسل الخادم تاريخ آخر تعديل للملف، فيعيد المتصفح إرساله في حقل الرأس If-Modified-Since.

إذا تطابقت البصمة ولم يتغير الملف، يرد الخادم بكود الحالة 304 Not Modified وبدون جسم رسالة إطلاقاً (فتوفر نقل الملف بالكامل) ويجدد المتصفح صلاحية النسخة المحفوظة لديه. أما إذا تغير الملف فيرد الخادم بكود 200 OK مع النسخة الجديدة.

  • GET /assets/bundle.css HTTP/1.1
  • Host: www.closetag.com
  • If-None-Match: "v2-8f9d1a"
  • If-Modified-Since: Wed, 04 Nov 2026 08:00:00 GMT
  • HTTP/1.1 304 Not Modified
  • Date: Thu, 05 Nov 2026 11:05:00 GMT
  • Cache-Control: public, max-age=86400
  • ETag: "v2-8f9d1a"
الصف 2 صورة توضيحية
مخطط تسلسلي يوضح آلية التحقق الشرطي في الكاش عبر ETag وIf-None-Match واستجابة 304 Not Modified بدون جسم رسالة
الصف 3 ملاحظة هامة