Częstotliwość żądań

Niniejszy dokument dotyczy następujących metod:

  • Zaktualizuj interfejs API (v4): fullHashes.find
  • Zaktualizuj interfejs API (v4): threatListUpdates.fetch
  • Prośby o aktualizację

    Aby zapobiec przeciążeniu serwerów i zapewnić optymalną ochronę, interfejs Update API (wersja 4) nakłada przedziały czasu, które określają, jak często klient może wysyłać żądania do serwera Bezpiecznego przeglądania w celu sprawdź adresy URL (fullHashes.find). lub zaktualizowanie lokalnej bazy danych (threatListUpdates.fetch).

    Początkowe żądanie danych musi następować w losowym przedziale czasu od 0 do 1 minuty po gdy klient się włączy lub wybudzi. Kolejne żądania mogą być realizowane dopiero po minimalny czas oczekiwania lub Limit czasu trybu pozostania został przekroczony zaobserwowane.

    Minimalny czas oczekiwania

    Zarówno fullHashes.find i odpowiedź threatListUpdates.fetch mają pole minimumWaitDuration, którego klienci muszą przestrzegać.

    Jeśli pole minimumWaitDuration nie jest ustawione w odpowiedzi, klienci mogą Aktualizuj tak często, jak sobie tego życzą, i wysyłaj tyle żądań threatListUpdates lub fullHashes, ile tylko chcesz w dowolnym momencie.

    Jeśli w odpowiedzi jest ustawione pole minimumWaitDuration, klienty nie mogą aktualizuj się częściej niż długość okresu oczekiwania. Jeśli na przykład odpowiedź fullHashes zawiera minimalny czas oczekiwania wynoszący 1 godzinę, klient nie może wysyłać żadnych żądań fullHashes aż do upłynięcia tej godziny, nawet jeśli użytkownik odwiedza adres URL, którego prefiks skrótu pasuje do lokalnego w bazie danych. (Pamiętaj, że klienci mogą aktualizować dane z mniejszą częstotliwością niż minimalny czas oczekiwania, ale może negatywnie wpłynąć na ochronę).

    Tryb ponawiania

    Automatyczne ponawianie działa w przypadku fullHashes.find i odpowiedź ThreatListUpdates.fetch.

    Klienty, którzy otrzymają nieudaną odpowiedź HTTP (czyli dowolny kod stanu HTTP inny niż 200 OK) musi przejść w tryb ponawiania. Po przejściu w tryb ponawiania klienty muszą czekać na obliczony czas przed wysłaniem kolejnego żądania do serwera.

    Klienci muszą użyć tej formuły, aby obliczyć czas do ponowienia:

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

    N oznacza liczbę następujących po sobie nieudanych żądań, które zostały napotkane przez klienta (zaczyna się od N=1 po pierwszym nieudanym żądaniu). LOS to liczba losowa z zakresu od 0 do 1 który trzeba wybierać po każdej nieudanej aktualizacji.

    Gdy klient otrzyma pomyślną odpowiedź HTTP, musi wyjść z trybu ponawiania i wykonać minimalny czas oczekiwania, opisane powyżej.