Häufigkeit der Anfragen

Dieses Dokument bezieht sich auf die folgenden Methoden:

  • Update API (Version 4): fullHashes.find
  • Update API (Version 4): threatListUpdates.fetch
  • Aktualisierungs-Anfragen

    Die Update API (v4) legt Zeitintervalle fest, mit denen ein Client Anfragen an den Safe Browsing-Server senden kann, um URL-Prüfungen (fullHashes.find) oder die Aktualisierung der lokalen Datenbank (threatListUpdates.fetch) durchzuführen. So lassen sich Serverüberlastungen vermeiden und der Schutz ist optimal.

    Die erste Datenanfrage muss in einem zufälligen Intervall zwischen 0 und 1 Minute nach dem Start oder der Aktivierung des Clients erfolgen. Nachfolgende Anfragen können erst gesendet werden, nachdem die Mindestwartedauer oder das Zeitlimit für den Backoff-Modus eingehalten wurde.

    Mindestwartezeit

    Sowohl die fullHashes.find-Antwort als auch die threatListUpdates.fetch-Antwort haben ein minimumWaitDuration-Feld, das von Clients befolgt werden muss.

    Wenn das Feld minimumWaitDuration in der Antwort nicht festgelegt ist, können Clients so oft wie gewünscht aktualisieren und so viele threatListUpdates- oder fullHashes-Anfragen senden, wie sie möchten.

    Wenn das Feld minimumWaitDuration in der Antwort festgelegt ist, können Clients nicht häufiger als die Länge der Wartezeit aktualisieren. Wenn eine fullHashes-Antwort beispielsweise eine Mindestwartezeit von 1 Stunde enthält, darf der Client erst nach Ablauf dieser Stunde fullHashes-Anfragen senden, auch wenn der Nutzer eine URL aufruft, deren Hash-Präfix mit der lokalen Datenbank übereinstimmt. (Beachten Sie, dass Clients seltener als die Mindestwartezeit aktualisiert werden, dies kann sich jedoch negativ auf den Schutz auswirken.)

    Backoff-Modus

    Der automatische Backoff gilt sowohl für die fullHashes.find-Antwort als auch für die threatListUpdates.fetch-Antwort.

    Clients, die eine fehlgeschlagene HTTP-Antwort erhalten (d. h. einen anderen HTTP-Statuscode als 200 OK), müssen in den Backoff-Modus wechseln. Im Backoff-Modus müssen Clients die berechnete Zeit abwarten, bevor sie eine weitere Anfrage an den Server senden können.

    Clients müssen die folgende Formel verwenden, um die Backoff-Zeitdauer zu berechnen:

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

    N entspricht der Anzahl der aufeinanderfolgenden, fehlgeschlagenen Anfragen, die vom Client ausgeführt werden (beginnend mit N=1 nach der ersten fehlgeschlagenen Anfrage). RAND ist eine Zufallszahl zwischen 0 und 1, die nach jeder erfolglosen Aktualisierung ausgewählt werden muss.

    Sobald ein Client eine erfolgreiche HTTP-Antwort erhält, muss er den Backoff-Modus beenden und die oben angegebene Mindestwartezeit einhalten.