معدّل تكرار الطلب

ينطبق هذا المستند على الطرق التالية:

  • تحديث واجهة برمجة التطبيقات (الإصدار 4): fullHashes.find
  • تحديث واجهة برمجة التطبيقات (الإصدار 4): threatListUpdates.fetch
  • طلبات التحديث

    لمنع الحمل الزائد على الخادم والاستفادة من الحماية المُثلى، تفرض واجهة برمجة التطبيقات (الإصدار 4) فواصل زمنية لعدد المرات التي يمكن للعميل فيها إرسال طلبات إلى خادم "التصفّح الآمن" لإجراء عمليات تحقّق من عناوين URL (fullHashes.find) أو لتعديل قاعدة البيانات المحلية (threatListUpdates.fetch).

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

    الحد الأدنى لمدة الانتظار

    يحتوي كل من fullHashes.find الإجابة وthreatListUpdates.fetch على حقل minimumWaitDuration يجب أن يلتزم به العملاء.

    إذا لم يتم ضبط الحقل minimumWaitDuration في الردّ، يمكن للبرامج تعديل الحقول بالمعدّل الذي تريده وإرسال العدد الذي تريده من طلبات threatListUpdates أو fullHashes.

    وإذا تم ضبط الحقل minimumWaitDuration في الردّ، لن يتمكّن العملاء من تعديل البيانات بوتيرة أكبر من مدة الانتظار. على سبيل المثال، إذا تضمّن استجابة fullHashes حدًّا أدنى لمدة الانتظار تبلغ ساعة واحدة، يجب ألا يرسل العميل أي طلبات fullHashes حتى تمر هذه الساعة، حتى إذا كان المستخدم ينتقل إلى عنوان URL تتطابق بادئة التجزئة الخاصة به مع قاعدة البيانات المحلية. (يُرجى العِلم أنّه بإمكان العملاء تعديل درجات الحرارة بوتيرة أقل من الحدّ الأدنى لمدة الانتظار، إلا أنّ هذا قد يؤثر سلبًا في مستوى الحماية).

    وضع التراجع

    ينطبق التراجع التلقائي على كل من ردfullHashes.find و رد threatListUpdates.fetch.

    يجب على العملاء الذين يتلقّون استجابة HTTP غير ناجحة (أي رمز حالة HTTP بخلاف 200 OK) الدخول في وضع التراجع. بعد استخدام وضع "التراجع"، على العملاء الانتظار للمدة الزمنية المحسوبة قبل أن يتمكنوا من إصدار طلب آخر للخادم.

    يجب أن يستخدم العملاء الصيغة التالية لحساب مدة وقت التراجع:

    MIN((2N-1 * 15 minutes) * (RAND + 1), 24 hours)

    تتطابق القيمة "عدد" مع عدد الطلبات المتتالية وغير الناجحة التي يواجهها العميل (بدءًا من "س" = 1 بعد أول طلب غير ناجح). إنّ RAND هو رقم عشوائي يتراوح بين 0 و1 ويجب اختياره بعد كل عملية تعديل غير ناجحة.

    بعد أن يتلقّى العميل استجابة HTTP ناجحة، على العميل الخروج من وضع التراجع واتّباع الحد الأدنى لمدة الانتظار المحدَّد أعلاه.