Fréquence des requêtes

Ce document s'applique aux méthodes suivantes :

  • API Update (v4) : fullHashes.find
  • API Update (v4) : threatListUpdates.fetch
  • Demandes de mises à jour

    Pour éviter la surcharge du serveur et bénéficier d'une protection optimale, l'API Update (v4) impose des intervalles de temps pour la fréquence à laquelle un client peut envoyer des requêtes au serveur de navigation sécurisée pour effectuer des vérifications d'URL (fullHashes.find) ou mettre à jour la base de données locale (threatListUpdates.fetch).

    La requête initiale de données doit avoir lieu à un intervalle aléatoire entre 0 et 1 minute après le démarrage ou le réveil du client. Les requêtes suivantes ne peuvent se produire qu'après avoir observé la durée d'attente minimale ou le mode d'attente.

    Durée d'attente minimale

    Les réponses fullHashes.find et threatListUpdates.fetch comportent toutes deux un champ minimumWaitDuration que les clients doivent respecter.

    Si le champ minimumWaitDuration n'est pas défini dans la réponse, les clients peuvent effectuer une mise à jour aussi souvent qu'ils le souhaitent et envoyer autant de requêtes threatListUpdates ou fullHashes qu'ils le souhaitent.

    Si le champ minimumWaitDuration est défini dans la réponse, les clients ne peuvent pas effectuer une mise à jour supérieure à la durée d'attente. Par exemple, si une réponse fullHashes contient une durée d'attente minimale d'une heure, le client ne doit pas envoyer de requêtes fullHashes avant que cette heure ne soit écoulée, même si l'utilisateur consulte une URL dont le préfixe de hachage correspond à la base de données locale. Notez que les clients peuvent effectuer des mises à jour moins souvent que la durée d'attente minimale, mais cela peut affecter la protection.

    Mode d'attente

    L'intervalle automatique s'applique à la fois à la réponse fullHashes.find et à la réponse ThratListUpdates.fetch.

    Les clients qui reçoivent une réponse HTTP d'échec (c'est-à-dire tout code d'état HTTP autre que 200 OK) doivent passer en mode d'attente. Une fois en mode d'attente, les clients doivent attendre la durée calculée avant de pouvoir envoyer une autre requête au serveur.

    Les clients doivent utiliser la formule suivante pour calculer la durée d'attente:

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

    N correspond au nombre de requêtes consécutives infructueuses rencontrées par le client (commençant par N=1 après la première requête ayant échoué). RAND est un nombre aléatoire compris entre 0 et 1 qui doit être sélectionné après chaque mise à jour ayant échoué.

    Lorsqu'un client reçoit une réponse HTTP réussie, il doit quitter le mode d'attente et respecter la durée d'attente minimale spécifiée ci-dessus.