AI-generated Key Takeaways
-
The Google Safe Browsing Update API (v4) enforces request frequency limits to prevent server overload and maintain optimal protection.
-
Clients should adhere to the
minimumWaitDurationfield provided in API responses to determine update frequency. -
If the
minimumWaitDurationfield is not set, clients can update as frequently as needed; if set, updates should not exceed the specified duration. -
Upon receiving unsuccessful HTTP responses, clients must enter back-off mode, delaying subsequent requests using a calculated time duration formula.
-
After a successful response, clients exit back-off mode and resume following the
minimumWaitDurationguidelines for updates.
This document applies to the following methods:
Update requests
To prevent server overload and to benefit from optimal protection, the Update API (v4) imposes time intervals for how often a client can send requests to the Safe Browsing server to perform URL checks (fullHashes.find) or to update the local database (threatListUpdates.fetch).
The initial request for data must happen at a random interval between 0 and 1 minutes after the client starts or wakes up. Subsequent requests can happen only after the minimum wait duration or back-off mode time limit has been observed.
Minimum wait duration
Both the
fullHashes.find response and
threatListUpdates.fetch response
have a minimumWaitDuration field that clients must obey.
If the minimumWaitDuration field is not set in the response, clients can
update as frequently as they want and send as many threatListUpdates or fullHashes requests as
they want.
If the minimumWaitDuration field is set in the response, clients cannot
update more frequently than the length of the wait duration. For example, if a fullHashes response
contains a minimum wait duration of 1 hour, the client must not send send any fullHashes requests
until that hour passes, even if the user is visiting a URL whose hash prefix matches the local
database. (Note that clients can update less frequently than the minimum wait duration but this
may negatively affect protection.)
Back-off mode
Automatic back-off applies to both the fullHashes.find response and threatListUpdates.fetch response.
Clients that receive an unsuccessful HTTP response (that is, any HTTP status code other than
200 OK) must enter back-off mode. Once in back-off mode, clients must wait the computed time
duration before they can issue another request to the server.
Clients must use the following formula to compute the back-off time duration:
MIN((2N-1 * 15 minutes) * (RAND + 1), 24 hours)N corresponds to the number of consecutive, unsuccessful requests that the client experiences (starting with N=1 after the first unsuccessful request). RAND is a random number between 0 and 1 that needs to be picked after every unsuccessful update.
Once a client receives a successful HTTP response, the client must exit back-off mode and follow the minimum wait duration specified above.