الملخص

  • يختار المخبأ الذي يدعم الحقول الموجّهة أول حقل صالح وغير فارغ في قائمة أهدافه المرتبة؛ أما المخبأ الذي لا يستهدف ذلك الحقل فلا يجوز أن يغيّر سلوكه بسببه.
  • لذلك قد تُخزَّن الاستجابة نفسها أو تُرفض أو تخضع لحقل آخر عند قفزات مختلفة، حتى عندما يكون CDN-Cache-Control صحيحاً من ناحية البنية.

لنتصور إطلاقاً افتراضياً بوضوح. يرسل الخادم الأصلي Cache-Control: no-store وCDN-Cache-Control: max-age=600. تتعرف شبكة CDN الأولى إلى الحقل الموجّه فتخزن الاستجابة عشر دقائق. ولا تضع ذاكرة مؤسسية لاحقة هذا الحقل ضمن أهدافها، فتلتزم بـno-store. أما شبكة CDN أخرى فتضع حقلاً خاصاً بالمورّد في مرتبة أعلى وتختاره بدلاً منه. ومع ذلك تسجل لوحة المتابعة نتيجة واحدة: «سياسة التخزين 600 ثانية».

الرأس لا يقدم معلومة كاذبة؛ إنما حذفت اللوحة مسار القرار الذي يمنحه معناه.

تعرّف RFC 9213 حقل التحكم الموجّه بأنه حقل استجابة يبيّن اسمه المستقل المخبأ أو فئة المخابئ المقصودة. ويعد CDN-Cache-Control المثال القياسي. تحمل قيمته دلالات توجيهات التخزين، لكن المخبأ المنفذ يحتفظ أيضاً بقائمة أهداف مرتبة قد تكون ثابتة أو قابلة للضبط أو مولّدة لكل طلب. وعند وجود أكثر من حقل معروف يختار أول قيمة صالحة وغير فارغة وفق ترتيب القائمة.

لهذا الاختيار أثر حاسم. بعد اختيار حقل موجّه، يستخدم المخبأ قيمته لتحديد سياسة الاستجابة ويتجاهل Cache-Control وExpires العاديين لتلك الاستجابة. وإذا لم يجد حقلاً صالحاً وغير فارغ في قائمته يعود إلى آليات HTTP العادية الواردة في RFC 9111. وهكذا يمكن لمخبأين متوافقين أن يتلقيا البايتات نفسها ويصلا إلى قرارين مختلفين لأن قائمتيهما مختلفتان.

النطاق لا يقل أهمية عن الأولوية. فالحقل غير الموجود في قائمة أهداف مخبأ ما لا يغيّر سلوكه ويجب تمريره. قد يرى مخبأ غير تابع لـCDN الحقل من دون تطبيقه. وغالباً تمرر شبكة CDN التي تستخدمه الحقل إلى شبكات CDN اللاحقة، لكن RFC 9213 تجيز حذفه عندما لا يكون التمرير مرغوباً. لذا لا يثبت الحقل الظاهر في نقطة رصد أن القفزات السابقة واللاحقة رأت المجموعة نفسها.

التحليل البنيوي حد آخر. الحقول الموجّهة قواميس من Structured Fields. ورغم شبهها بـCache-Control، تختلف معالجة الأخطاء. يُهمَل الحقل الفارغ أو غير الصالح، وقد ينشّط ذلك سياسة الرجوع. فإذا سجلت اللوحة النص الخام دون نتيجة المحلل، فقد تنسب سلوكاً إلى حقل لم يقبله المخبأ أصلاً.

وتبقى الحداثة نسبية إلى المخبأ الذي اختار السياسة. يسمح مثال RFC 9213 بأن تعتبر CDN الاستجابة حديثة 3600 ثانية، ومخابئ مشتركة أخرى 600 ثانية، وغيرها 60 ثانية. بعد 1800 ثانية تكون حديثة لدى CDN وقديمة في مواضع أخرى. لا تناقض هنا؛ بل سياسات مختلفة. والخطأ التشغيلي هو اختزالها في حالة واحدة للسلسلة.

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

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

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

المصادر