العودة
Cloudflare تضيف دعم Vary إلى Cache Rules في جميع الخطط
SiTech AI Team2 წთ. საკითხავი

Cloudflare تضيف دعم Vary إلى Cache Rules في جميع الخطط

أضافت Cloudflare دعم ترويسة الاستجابة Vary إلى Cache Rules في جميع الخطط، بما فيها الخطة المجانية. لا يزال الأصل يحدد حقول الطلب التي قد تغيّر الاستجابة، لكن المشغّل صار يقرر لكل ترويسة: تطبيع القيمة أو تمريرها كما هي أو تجاوز الذاكرة المؤقتة.

أضافت Cloudflare دعمًا لترويسة الاستجابة Vary في HTTP ضمن Cache Rules. الميزة متاحة في جميع الخطط، بما فيها المجانية. وفي منشور الشركة على مدونتها تُوصف Vary بأنها «أبشع جزء في HTTP لم نحسّنه بعد»، وهو اقتباس لمارك نوتنغهام.

توجد هذه الترويسة لأن عنوان URL واحدًا قد تكون له أكثر من استجابة صحيحة: فقد يرسل الخادم إلى عملاء مختلفين لغات أو صيغ صور أو مخططات ضغط مختلفة. والذاكرة المؤقتة التي تتجاهل Vary قد ترد HTML على عميل API أو JSON على متصفح، أما اعتبار كل قيمة خام حالة منفصلة فيفتّت استجابة واحدة قابلة لإعادة الاستخدام إلى آلاف المتغيرات شبه المتطابقة.

رسم بياني: عنوان واحد بتمثيلات متعددة وتأثير Vary على الذاكرة المؤقتة

ما لا تقوله Vary

تخبر Vary الذاكرة المؤقتة بحقول الطلب التي قد تؤثر في الاستجابة، لكنها لا تقول ما تمثله تلك الاستجابة. في مثال Cloudflare يقدّم الأصل محتوى بالإنجليزية والفرنسية والألمانية، ويرسل عميلان القيمتين Accept-Language: en-US, fr;q=0.8 وAccept-Language: fr;q=0.8, en-GB. كلاهما يفضّل الإنجليزية وقد يحصلان على البايتات ذاتها، لكن ذاكرة تقارن القيم الخام تخزّنهما كمتغيرين منفصلين.

تتفاقم المشكلة مع تعدّد الحقول: عشرة قيم في حقل واحد تعني عشرة متغيرات، أما عشرة قيم في ثلاثة حقول فقد تعني ألف تركيبة. وبحسب تحليل أجرته Cloudflare شمل أكثر من 120 مليون استجابة من قرابة 50,000 موقع شائع، تبيّن أن نحو 3,000 موقع تتغيّر استجاباتها وفق أربعة حقول أو أكثر — وبعضها وفق 10 أو 23 أو حتى 47 حقلًا.

ثلاثة إجراءات: normalize وpassthrough وbypass

في النموذج الجديد يظل الأصل يسمّي الترويسات في Vary، بينما تحدد Cache Rule كيفية تعامل Cloudflare مع كل واحدة. الإجراء normalize، وهو الوضع الافتراضي الموصى به، يعيد كتابة قيم Accept وAccept-Language وAccept-Encoding قبل مطابقة الذاكرة: يحوّلها إلى حروف صغيرة ويرتبها حسب قيمة الجودة، بحيث تتشارك الطلبات المتكافئة استجابة واحدة. أما passthrough فيحفظ البايتات الخام، بما فيها حالة الأحرف والمسافات والترتيب والقيم المكررة، ويناسب الترويسات التي تؤثر قيمتها الدقيقة في الاستجابة. وbypass لا يخزّن الاستجابة عندما يسمّي الأصل تلك الترويسة في Vary، وهو الخيار المناسب للكوكيز وUser-Agent والحقول الشخصية. أما الاستجابة التي تحمل Vary: * فلا تُخزَّن أبدًا.

التهيئة وملاحظات

توجد إعدادات Vary داخل Cache Rules (من لوحة التحكم: Caching > Cache Rules)، وتتوفر أيضًا عبر Rulesets API في مرحلة http_request_cache_settings وعبر Terraform. وتشدّد Cloudflare على أن المسؤولية تبقى على الأصل: فكل استجابة قابلة للتخزين وقد تختلف حسب حقول الطلب يجب أن تعيد ترويسة Vary المناسبة بشكل متسق، بما في ذلك استجابات الأخطاء. وتغيير القاعدة لا يمحو المدخلات القائمة تلقائيًا: تبقى المتغيرات القديمة حتى انتهاء صلاحيتها أو مسحها، ومسح مورد ما يغطي جميع متغيرات Vary الخاصة به.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.