فرکانس درخواست

این سند برای روش های زیر اعمال می شود:

  • به روز رسانی API (v4) : fullHashes.find
  • به روز رسانی API (v4) : gefListUpdates.fetch
  • درخواست های به روز رسانی

    برای جلوگیری از اضافه بار سرور و بهره مندی از حفاظت بهینه، Update API (v4) فواصل زمانی را برای هر چند وقت یک‌بار یک کلاینت برای انجام بررسی URL ( fullHashes.find ) یا به‌روزرسانی پایگاه داده محلی، درخواست‌ها را به سرور مرور ایمن ارسال می‌کند. .رفتن و آوردن ).

    درخواست اولیه برای داده باید در فاصله زمانی تصادفی بین 0 تا 1 دقیقه پس از شروع یا بیدار شدن مشتری انجام شود. درخواست‌های بعدی فقط پس از رعایت حداقل مدت انتظار یا محدودیت زمانی حالت عقب‌نشینی ممکن است اتفاق بیفتد.

    حداقل مدت زمان انتظار

    هم پاسخ fullHashes.find و هم پاسخ gefListUpdates.fetch دارای یک قسمت minimumWaitDuration هستند که مشتریان باید از آن پیروی کنند.

    اگر فیلد minimumWaitDuration در پاسخ تنظیم نشده باشد ، کلاینت‌ها می‌توانند هر چند وقت یکبار که می‌خواهند به‌روزرسانی کنند و هر تعداد درخواست threatListUpdates یا fullHashes را که می‌خواهند ارسال کنند.

    اگر فیلد minimumWaitDuration در پاسخ تنظیم شده باشد ، مشتریان نمی توانند بیشتر از مدت زمان انتظار به روز شوند. به عنوان مثال، اگر یک پاسخ fullHashes حاوی حداقل مدت زمان انتظار 1 ساعت باشد، مشتری نباید هیچ درخواست fullHashes ارسال کند تا زمانی که آن ساعت بگذرد، حتی اگر کاربر از URL بازدید کند که پیشوند هش آن با پایگاه داده محلی مطابقت دارد. (توجه داشته باشید که کلاینت‌ها می‌توانند کمتر از حداقل مدت زمان انتظار به‌روزرسانی شوند، اما این ممکن است بر محافظت تأثیر منفی بگذارد.)

    حالت عقب نشینی

    پشتیبان گیری خودکار هم برای پاسخ fullHashes.find و هم برای پاسخ gefListUpdates.fetch اعمال می شود.

    کلاینت هایی که پاسخ HTTP ناموفقی دریافت می کنند (یعنی هر کد وضعیت HTTP غیر از 200 OK ) باید وارد حالت عقب نشینی شوند. هنگامی که در حالت عقب‌نشینی قرار می‌گیرد، مشتریان باید برای مدت زمان محاسبه‌شده منتظر بمانند تا بتوانند درخواست دیگری برای سرور صادر کنند.

    مشتریان باید از فرمول زیر برای محاسبه مدت زمان بازگشت استفاده کنند:

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

    N مربوط به تعداد درخواست های متوالی و ناموفقی است که مشتری تجربه می کند (با N=1 بعد از اولین درخواست ناموفق شروع می شود). RAND یک عدد تصادفی بین 0 و 1 است که باید پس از هر به‌روزرسانی ناموفق انتخاب شود.

    هنگامی که یک مشتری یک پاسخ HTTP موفقیت آمیز دریافت کرد، مشتری باید از حالت عقب نشینی خارج شود و حداقل مدت انتظار مشخص شده در بالا را دنبال کند.