الخلاصة
- عرّفت RFC 5861 المنشورة في مايو 2010 كتقديم مستقل معلوماتي امتدادين:
stale-while-revalidateلإرسال نسخة قديمة أثناء التحقق، وstale-if-errorلإرسالها عند وقوع خطأ من الخادم. - يحدد المثالان المهل بدقة:
max-age=600, stale-while-revalidate=30يعني عشر دقائق جديدة وثلاثين ثانية إضافية؛ وmax-age=600, stale-if-error=1200قد يجعل خطأ 500 عند عمر 900 ثانية يتحول إلى رد قديم 200 يحملAge: 900. - أبقت RFC 9111 الصادرة في يونيو 2022 شرط الإذن الواضح لإرسال ردود قديمة، وألغت حقل
Warningالذي كان منتظراً في القواعد الأقدم.
نسخة تصل قبل انتهاء التحقق
تحفظ الذاكرة المخبأة استجابة كي لا يسافر كل طلب إلى المصدر. خلال فترة الصلاحية الجديدة تستطيع تسليمها مباشرة. بعد انتهاء تلك الفترة يتطلب الأمر عادة التحقق من أن المورد لم يتغير. هذا يستغرق اتصالاً ومعالجة حتى إذا بقيت الصفحة كما كانت. RFC 5861 أعطت الناشر طريقة لمنح هامش صغير يسبق فيه تسليم النسخة اكتمال التحقق.
إذا حمل الرد Cache-Control: max-age=600, stale-while-revalidate=30 بقي جديداً 600 ثانية. في الثلاثين التالية يجوز للذاكرة المخبأة أن تقدم النسخة القديمة فوراً، وتطلب التأكيد من المصدر في الخلفية. يرى القارئ الصفحة بسرعة، بينما تعمل الآلة على مستقبل الردود التالية. إن عاد المصدر بنسخة جديدة أو أكد القديمة، تتغير حالة التخزين تبعاً لذلك.
تنتهي الثلاثون ثانية حتى إذا لم يأت طلب يشغّل التحقق، أو جاء الطلب وظلت النتيجة معلقة. حينها ينتظر الطلب التالي المعالجة العادية. صفحة قليلة الزوار قد لا تستفيد من المهلة أصلاً. يحدد طولها وكثافة المرور عدد القراء الذين يتجنبون الانتظار. الناشر هو من يقرر كم ثانية يمكن أن يتأخر وصول تعديلاته.
500 خلف ستار نجاح سابق
الامتداد الثاني، stale-if-error، يخص محاولة جلب جواب راهن تصطدم بظرف يؤدي إلى 500 أو 502 أو 503 أو 504. خلال الحد المسموح لعمر النسخة القديمة، تستطيع الذاكرة تقديم نجاح محفوظ بدلاً من خطأ المصدر. يحصل المستخدم على صفحة نجحت سابقاً رغم أن محاولة تحديثها فشلت الآن.
في مثال RFC 5861 يبدأ الرد بـmax-age=600, stale-if-error=1200. عند عمر 900 ثانية يفشل التحقق برد 500. يجوز للذاكرة أن تعيد جسماً محفوظاً برمز 200 OK مع Age: 900. يصف 200 ما سُلّم للعميل، ويكشف العمر الزمن منذ إنشاء النسخة أو نجاح التحقق منها لدى المصدر. العطل موجود في المصدر؛ آلية محددة المدة حجبته عن القارئ.
تضاف 1,200 ثانية إلى 600 ثانية من الصلاحية الجديدة. بعد أن يتجاوز العمر الكلي 1,800 ثانية في المثال يمر الخطأ إلى العميل. قد تكون عشرون دقيقة من نسخة أقدم أفضل من انقطاع صفحة مرجعية. وقد تكون عشرون دقيقة خطيرة إذا تغير إذن أو رصيد أو تعليمات دفع. اختيار المهلة قرار يتعلق بطبيعة المحتوى، وليس مجرد تحسين لرسم التوافر.
للامتدادين شروط مختلفة. الأول يخفي وقت التحقق؛ الثاني يغطي فشل التحقق أو الجلب. دمجهما تحت زر عام اسمه «قدم محتوى قديماً» يخفي سبب الإذن وحده الزمني. يحدد المصدر حدود المخاطرة، وتتصرف الذاكرة داخلها.
لافتة التحذير القديمة خرجت من القاعدة
في 2010 توقع النص Age غير صفري وحقل Warning عند إرسال نسخة قديمة، وفق HTTP المعمول به آنذاك. RFC 9111 ألغت Warning في 2022 لأنه قلما كان يُنتج أو يُعرض للمستخدمين. يبقى Age تقديراً للمدة منذ إنشاء الرد في المصدر أو آخر تحقق ناجح. من يقرأ رمز 200 وحده قد يفوته عمر المحتوى؛ ومن ينتظر حقل التحذير القديم يبحث عن علامة أزيلت.
وضعت مواصفة 2022 حدوداً صريحة: إذا منعت تعليمات مثل no-cache أو must-revalidate الرد القديم فلا يجوز للذاكرة تقديمه. وفي غير ذلك يلزم انقطاع أو إذن صريح من العميل أو المصدر، أو اتفاق خارج البروتوكول؛ امتدادا 2010 مثالان على الإذن. الذاكرة وسيط يطبق صلاحية محددة، وليست صاحبة قرار صلاحية كل مورد.
صدرت RFC 5861 كمساهمة معلوماتية مستقلة، ثم وردت امتداداتها مثالاً في مواصفة التخزين القياسية لعام 2022. لمعرفة الخدمات التي طبقتها نحتاج رؤوس استجابات مؤرخة وإعدادات الذاكرة وتسجيلات وقت الأعطال. التاريخ الموثق يبين الصفقة: المصدر يجيز عمراً إضافياً للحقيقة القديمة، والوسيط يشتري به السرعة أو الاستمرار، والقارئ يتعامل مع صورة متأخرة.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات





