Частота запроса

Этот документ распространяется на следующие методы:

  • Обновление API (v4) : fullHashes.find
  • Обновление API (v4) : ThreatListUpdates.fetch
  • Запросы на обновление

    Чтобы предотвратить перегрузку сервера и получить оптимальную защиту, API обновлений (v4) устанавливает временные интервалы, определяющие, как часто клиент может отправлять запросы на сервер безопасного просмотра для выполнения проверки URL-адресов ( fullHashes.find ) или обновления локальной базы данных ( ThreatListUpdates ). .принести ).

    Первоначальный запрос данных должен происходить через случайный интервал от 0 до 1 минуты после запуска или пробуждения клиента. Последующие запросы могут выполняться только после соблюдения минимальной продолжительности ожидания или ограничения времени режима отсрочки .

    Минимальная продолжительность ожидания

    И ответ fullHashes.find , и ответ ThreatListUpdates.fetch имеют поле minimumWaitDuration , которому должны подчиняться клиенты.

    Если поле minimumWaitDuration не установлено в ответе, клиенты могут обновляться так часто, как захотят, и отправлять столько запросов threatListUpdates или fullHashes , сколько захотят.

    Если в ответе установлено поле minimumWaitDuration , клиенты не могут обновляться чаще, чем продолжительность ожидания. Например, если ответ fullHashes содержит минимальную продолжительность ожидания в 1 час, клиент не должен отправлять запросы fullHashes до тех пор, пока не пройдет этот час, даже если пользователь посещает URL-адрес, префикс хеш-функции которого соответствует локальной базе данных. (Обратите внимание, что клиенты могут обновляться реже, чем минимальная продолжительность ожидания, но это может отрицательно повлиять на защиту.)

    Режим отсрочки

    Автоматическое отключение применяется как к ответу fullHashes.find , так и к ответу ThreatListUpdates.fetch .

    Клиенты, получившие неудачный ответ HTTP (то есть любой код состояния HTTP, отличный от 200 OK ), должны войти в режим отсрочки. В режиме отсрочки клиенты должны подождать вычисленное время, прежде чем они смогут отправить другой запрос серверу.

    Клиенты должны использовать следующую формулу для расчета продолжительности времени ожидания:

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

    N соответствует количеству последовательных неудачных запросов, которые испытывает клиент (начиная с N=1 после первого неудачного запроса). RAND — это случайное число от 0 до 1, которое необходимо выбирать после каждого неудачного обновления.

    Как только клиент получит успешный HTTP-ответ, он должен выйти из режима ожидания и соблюдать минимальную продолжительность ожидания, указанную выше.