عدد الثواني في Retry-After لا يبدأ من لحظة بدء الطلب في العقد الموصوف. إذا ساعد الذكاء الاصطناعي في قراءة سجل اتصال، يحتاج إلى معرفة متى تلقى الرد وأي صيغة استعملها الحقل. نؤلف خطا زمنيا في وحدة واحدة، دون إرسال طلب أو انتظار خدمة.
الخلاصة السريعة
العدد غير السالب يحدد ثواني بعد تلقي الرد؛ والصيغة الأخرى تاريخ HTTP بعده يمكن إعادة المحاولة. [1] نميز حساب الموعد من تنفيذ إعادة محاولة أو نجاحها.
- تقبل Retry-After تاريخ HTTP أو عددا صحيحا غير سالب؛ العدد مدة بعد تلقي الرد، وليس بعد بدء الطلب. [1] سمّ الصيغة والمرجع أولا.
- في خطنا بدأ الطلب عند الصفر وتلقي الرد عند 5 ثوان بقيمة انتظار 30؛ يصل الحد المحسوب إلى 35، لا 30، بافتراض وحدة ومرجع واحدين.
- صيغة التاريخ تعطي وقتا بعده تجوز المحاولة، لا مدة نضيفها تلقائيا إلى بدء الطلب. [1] إذا غاب التاريخ الصحيح أو سياق الساعة لا نخترع حسابا.
- التوجيه والموعد المحسوب لا يثبتان أن العميل جدولا الطلب أو أرسله أو نجح؛ لم ننفذ إعادة محاولة، ولا نقدم طريقة إعادة آمنة لكل إجراء.
أي صيغة وردت في الحقل؟
تصف MDN الصيغتين: تاريخ HTTP بعده يمكن إعادة المحاولة، أو عدد ثوان صحيح غير سالب بعد تلقي الرد. [1]
إذن تبدأ قراءة المساعد بتصنيف القيمة. ليس كل رقم في وصف الرد مدة، وليس كل وقت تاريخا مطلقا صالحا. نحتفظ بلفظ الترويسة وقيمتها في السجل كيلا تضيع الصيغة أثناء اختصار النص.
نقصر مثالنا على تفسير الزمن الذي تعنيه القيمة. لا نقرر أي إجراء تجاري يمكن تكراره أو ما إذا كان العميل يدعم التوجيه في كل سياق؛ ذلك يحتاج عقد العملية والعميل.
كيف يتغير الحساب عند التأخر في تلقي الرد؟
نؤلف ساعة نسبية واحدة: بدأ الطلب عند 0، وتلقى العميل الرد عند 5، وكان عدد الانتظار المعلن 30 ثانية. جمع 5 مع 30 يعطي 35؛ أما جمع 0 مع 30 فيعطي 30 ويستعمل المرجع الخطأ لهذا الفرع.
الفارق خمس ثوان هو زمن قبل وصول الرد في خطنا، لا قياسا لأداء خدمة. لم نقرأ شاشة ساعة أو سجل شبكة؛ اخترنا القيم كي يظهر أثر اختيار البداية.
نقول إن 35 حد مشتق وفق البطاقة. لا نسميه وقتا أرسل فيه طلب آخر؛ دفترنا لا يحتوي حدث إعادة محاولة.
| الحدث المؤلف | موضعه بالثواني | دوره |
|---|---|---|
| بدء الطلب | 0 | ليس مرجع مدة الحقل |
| تلقي الرد | 5 | مرجع مدة 30 |
| الحد المحسوب | 35 | دون تنفيذ معلن |
هل نعامل التاريخ كعدد ثوان أيضا؟
صيغة التاريخ تعطي وقتا بعده يمكن إعادة المحاولة، بينما الصيغة العددية مدة بعد تلقي الرد. [1]
إذا وصفت مادة أخرى تاريخا مطلقا، نسجله بهذه الصفة ولا نجمعه مع رقم البداية. وإذا أردنا مقارنته بساعة العميل، نحتاج معلومات الزمن المقدمة؛ لا نضع تاريخا محليا متخيلا مكان قيمة لم نقرأها.
كذلك لا نستبدل القيمة النصية المجهولة بمدة اعتدناها. يحتفظ المساعد بالفرع غير المحسوب حين ينقصه المرجع بدلا من إصدار نتيجة تبدو دقيقة بلا مدخلات كافية.
ما الذي تثبته ورقة الانتظار؟
تثبت ورقتنا علاقة حسابية في مثال معلن: 5 ثم 30 يعطيان 35. لا تخبرنا بأن العميل احترم التوجيه أو أن الخادم أصبح متاحا، ولا بأن الطلب التالي نجح.
لو ظهر لاحقا سجل تنفيذ، نقرأ لحظته ونتيجته بوصفهما مادتي فحص منفصلتين. لا يضيف رسم سهم إلى 35 الحدث إلى دفترنا؛ الرسم يوضح الحد فقط.
لم ننتظر خدمة أو نشغل عميلا. ينقل الملخص الصيغة وبداية حسابها والقيمة الناتجة وشروط المقارنة، ويترك الجدولة والتنفيذ والنتيجة للسجل الذي يثبتها فعلا.
المصادر ومتابعة القراءة
- MDN: Retry-After (يفتح في نافذة جديدة)developer.mozilla.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
