الخلاصة

  • تنشئ Cache-Groups علاقةً فقط بين استجابات من المصدر نفسه، محفوظة في المخبأ نفسه، وتحمل السلسلة ذاتها حرفاً بحرف مع مراعاة حالة الأحرف.
  • تتيح Cache-Group-Invalidation قراراً محلياً اختيارياً بعد طلب غير آمن؛ ولا ينتقل القرار بالتسلسل ولا يزامن مخبأً آخر.

قد يغيّر طلب واحد صفحة منتج وقائمةً ونتيجةً مجمعة، مع بقاء URI ومفتاح التخزين المؤقت مختلفين لكل منها. يتيح RFC 9875 للمصدر أن يصف العلاقة بين هذه الاستجابات من دون الادعاء بأنها تمثيل واحد.

الحقل الأول، Cache-Groups، هو List من Strings وفق Structured Fields. السلسلة مبهمة للمخبأ: يقارنها ولا يستنتج منها تسلسلاً هرمياً أو معنى تجارياً أو صلاحية. لا أهمية للترتيب، وتُهمَل المعاملات غير المعروفة. ويجب على التنفيذ دعم 32 مجموعةً على الأقل في الحقل و32 محرفاً على الأقل لكل عضو، مع بقاء الحدود العامة لأحجام حقول HTTP.

لا تتحقق العضوية إلا باجتماع ثلاثة شروط: وجود الاستجابتين في المخبأ نفسه، وتطابق السلسلة تماماً مع مراعاة الأحرف الكبيرة والصغيرة، واشتراكهما في أصل URI نفسه. الاسم نفسه لدى أصل آخر ليس عضواً. ووجود الاسم نفسه في مخبأ ثانٍ لا ينشئ حالةً مشتركة بينهما.

أما Cache-Group-Invalidation فيرد في استجابة لطلب يمكنه تغيير الحالة، مثل POST أو PUT أو DELETE، ويسمي مجموعات قد يبطلها المخبأ المتلقي. إذا ظهر في استجابة لطريقة آمنة مثل GET، فيجب تجاهله. لذلك لا يكفي تسجيل قيمة الحقل وحدها؛ فالطريقة والسياق جزء من واقعة المعالجة.

الكلمة المعيارية هي MAY. يجوز للمخبأ توسيع الإبطال إلى أعضاء المجموعة، ويجوز له تنفيذ الإشارة الواردة، لكن RFC 9875 لا يفرض سلوكاً موحداً على كل وسيط. يمكن لـ RFC 9213 تقوية المتطلب لفئة محددة من المخابئ بواسطة تحكم موجّه. هذا ملف سياسة إضافي، وليس معنىً مخفياً في اسم المجموعة.

الإبطال المحلي لا يعني دائماً حذف البايتات. يعرّف RFC 9111 الإبطال بأنه إزالة الاستجابات المحفوظة أو وسمها بأنها غير صالحة وتحتاج إلى تحقق إلزامي قبل إعادة الاستخدام. وعليه، لا يبين إيصال «أُبطلت» إن كانت البيانات بقيت، أو نجح التحقق اللاحق، أو وصلت نسخة مختلفة.

ولا تعمل المجموعات كرسم بياني متسلسل. إذا اشترك A وB في مجموعة، واشترك B وC في أخرى، فإن إبطال A عبر الأولى لا يعبر B ليبطل C. يمنع RFC هذا الامتداد؛ والمجموعة الفعلية هي ما كان المخبأ يحتفظ به لحظة المعالجة.

الحد الأهم هو حد الطوبولوجيا. تعمل الآلية داخل مخبأ واحد ولاستجابات أصل واحد. وهي لا تزامن مخابئ في تسلسل هرمي أو شبكة، ولا تربط أصولاً مختلفة. قد يتلقى طرف من شبكة التوزيع الإشارة فيما لا تمر مطلقاً بطريق آخر.

لهذا يجب فصل سجل التغيير في المصدر عن سلطة إصدار الحقول، والطريقة والاستجابة، واستلام كل وسيط، ودعم الإصدار، والسياسة المحلية، وأعضاء المجموعة الحاضرين، وقرار الإبطال، والحذف أو الوسم، والتحقق أو إعادة التعبئة، ثم اختبار التطبيق على كل طريق مهم. لا يثبت أي سجل تلقائياً ما يليه.

في الاستضافة المشتركة تصبح سلطة إصدار الحقل مسألة أمان. يحذر RFC 9875 من أن طرفاً قد يجمع موارده مع موارد طرف آخر في الأصل نفسه أو يرسل إشارات تؤثر فيها. يجب تقييد إدخال الحقول والمحافظة عليها بحسب المستأجر والأصل.

يسجل سجل IANA لأسماء حقول HTTP الحقلين بوصفهما Lists دائمة. يثبت التسجيل اسماً ومرجعاً مشتركين، ولا يثبت دعماً أو نقلاً أو تنفيذاً أو نتيجةً تشغيلية.

المصادر