Этот документ распространяется на следующие методы:
Запросы на обновление
Чтобы предотвратить перегрузку сервера и получить выгоду от оптимальной защиты, API обновлений (v4) устанавливает временные интервалы, определяющие, как часто клиент может отправлять запросы на сервер безопасного просмотра для выполнения проверки URL-адресов ( fullHashes.find ) или обновления локальной базы данных ( threathListUpdates ). .принести ).
Первоначальный запрос данных должен происходить через случайный интервал от 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-ответ, он должен выйти из режима ожидания и соблюдать минимальную продолжительность ожидания , указанную выше.