تقنية

استجابة مخزنة يشرحها المساعد: هل Age زمن وصول الطلب؟

رسم توضيحي: عمر أولي مصحح:40 ثانية؛ إقامة:30 ثانية؛ العمر الحالي:70 ثانية؛ حد النضارة:90 ثانية
مخطط من إعداد بحر العلوم. 70 أقل من 90 ؛ لا زمن طلب قيس أو أصل تحققنا منه

عمر استجابة HTTP ليس مجرد زمن انتظار آخر طلب. عندما يلخص المساعد سجل تخزين مؤقت، يحتاج معرفة العمر الذي يصفه Age، والوقت الذي مضى بعد استقبال النسخة، وحد النضارة. نبني خطا حسابيا معلنا وفق RFC9111 ، دون إرسال طلبات أو قياس خادم.

الخلاصة السريعة

لا؛ Age تقدير لعمر الاستجابة منذ إنشائها أو التحقق منها عند الأصل، ويشمل الإقامة والانتقال عبر المسار. [1] زمن طلب واحد مفهوم مختلف.

  • يصف RFC9111 Age بأنه عمر مقدر منذ الإنشاء أو التحقق عند الأصل، لا مدة طلبك وحدها. [1] لا نستنتج مدة الانتظار منه مباشرة.
  • نعطي عمرا أوليا مصححا مقداره 40 ثانية وإقامة 30 ثانية؛ العمر الحالي 70. مع حد نضارة 90، دون s-maxage أو تعارض، يكون 70 أقل منه؛ الفرض ليس سجل خادم.
  • صيغة النضارة تشترط أن يزيد حدها على العمر الحالي؛ التساوي عند 90 ليس نضارة، وتسبق s-maxage قيمة max-age في المخزن المشترك. [1] لا نعمم إعداداتنا.
  • النضارة تخص عمل التخزين ولا تفرض تحديث شاشة التطبيق. [1] كذلك لا تثبت أن الأصل ظل بلا تغيير؛ لم نتحقق منه أو نجرب إعادة الاستعمال.

ما الزمن الذي يحمله Age؟

يعرف RFC9111 قيمة Age بأنها تقدير الثواني منذ إنشاء الاستجابة أو التحقق منها عند خادم الأصل؛ يشمل العمر الإقامة في مخازن المسار والانتقال بينها. [1]

إذا كتب المساعد «انتظر المستخدم 40 ثانية» من Age وحده، فقد نسب زمنا إلى شخص وطلب لم تصفهما القيمة. لا نقدم في مثالنا وقت بداية طلب أو نهايته، فلا نحسب انتظار المستخدم.

التقدير متعلق بالاستجابة المخزنة، وليس تاريخ إنشاء الموضوع الذي تتحدث عنه. قد يكون النص عن حدث أقدم، لكن عمر استجابته ليس عمر ذلك الحدث.

كيف نضيف الوقت الذي مضى في المخزن؟

تضيف صيغة المصدر مدة الإقامة منذ استقبال الاستجابة إلى عمرها الأولي المصحح لحساب العمر الحالي. [1]

نعطي في ورقتنا العمر الأولي المصحح 40 ثانية، ثم إقامة 30 ثانية، فيصبح الحالي 70. نفترض أن حساب التصحيح السابق قدم 40 فعلا، ولا نساويها تلقائيا بأي Age خام مجهول تأخير النقل.

نعلن أيضا أن max-age للاستجابة هو 90 ثانية، وأنه حد النضارة المستعمل في التمرين دون s-maxage أو توجيه متعارض. هذه شروط الحساب، وليست رؤوسا استخرجناها من موقع.

حقل معلنالثواني
العمر الأولي المصحح40
الإقامة اللاحقة30
العمر الحالي70
حد النضارة المختار90

أين يقع حد المقارنة؟

تستخدم صيغة النضارة في المصدر المقارنة الصارمة: حد النضارة أكبر من العمر الحالي. ويستعمل max-age للاستجابة لحساب الحد مع مراعاة أولوية s-maxage للمخزن المشترك. [1]

في فرضنا 70 أقل من 90 ، فيحقق هذا الحساب شرط النضارة. وإذا انتظرنا في الخط المؤلف 20 ثانية أخرى دون تحقق جديد، يبلغ العمر 90 ؛ لا يعود محققا للمقارنة الصارمة.

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

هل النضارة برهان أن الصفحة لم تتغير؟

يوضح المعيار أن النضارة تخص تشغيل التخزين، ولا تفرض على التطبيق إعادة تحميل عرضه أو تحديثه. [1]

في ورقتنا لا يوجد بيان من الأصل عن تغير محتواه بعد إنشاء الاستجابة. لذلك لا يقول المساعد «أكدنا أن النص الحالي مطابق»، لمجرد أن 70 يحقق الحد 90. حساب العمر والتحقق من حقيقة النص سؤالان مستقلان.

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

المصادر ومتابعة القراءة

  1. RFC9111: HTTP Caching (يفتح في نافذة جديدة)rfc-editor.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.