Częstotliwość żądań

W tym dokumencie można stosować następujące metody:

  • Aktualizacja interfejsu API (v4): fullHashes.find
  • Update API (v4): threatListUpdates.fetch
  • Prośby o aktualizację

    Aby zapobiec przeciążeniu serwera i uzyskać optymalną ochronę, interfejs Update API (v4) stosuje przedziały czasowe, w których klient może wysyłać żądania do serwera Bezpiecznego przeglądania w celu sprawdzenia adresów URL (fullHashes.find) lub zaktualizowania lokalnej bazy danych (threatListUpdates.fetch).

    Początkowe żądanie danych musi następować w losowych odstępach czasu od 0 do 1 minuty od uruchomienia lub wybudzenia klienta. Kolejne żądania mogą być wysyłane dopiero po upływie limitu czasu minimalnego czasu oczekiwania lub trybu wycofywania.

    Minimalny czas oczekiwania

    Zarówno odpowiedź, jak i threatListUpdates.fetch zawiera pole minimumWaitDuration, którego muszą przestrzegać klienty.

    Jeśli pole minimumWaitDuration nie jest ustawione w odpowiedzi, klienci mogą dokonywać aktualizacji tak często, jak chcą i wysyłać dowolną liczbę żądań threatListUpdates lub fullHashes.

    Jeśli pole minimumWaitDuration jest ustawione w odpowiedzi, klienci nie mogą przeprowadzać aktualizacji częściej niż wynosi czas oczekiwania. Jeśli na przykład odpowiedź fullHashes ma minimalny czas oczekiwania wynoszący 1 godzinę, przed upływem tej godziny klient nie może wysyłać żadnych żądań fullHashes, nawet jeśli użytkownik odwiedza adres URL, którego prefiks skrótu odpowiada lokalnej bazie danych. (Pamiętaj, że klienci mogą przeprowadzać aktualizacje rzadziej niż wynosi minimalny czas oczekiwania, ale może to negatywnie wpłynąć na ochronę).

    Tryb wycofywania

    Automatyczne wycofywanie ma zastosowanie zarówno do odpowiedzi fullHashes.find, jak i threatListUpdates.fetch.

    Klienty, które otrzymają nieudaną odpowiedź HTTP (czyli dowolny kod stanu HTTP inny niż 200 OK), muszą przejść w tryb ponawiania. W trybie wycofywania klienty muszą poczekać obliczony czas trwania, zanim będą mogli wysłać kolejne żądanie do serwera.

    Aby obliczyć czas do ponowienia, klienci muszą użyć tej formuły:

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

    N odpowiada liczbie kolejnych, nieudanych żądań realizowanych przez klienta (zaczynających się od N=1 po pierwszym nieudanym żądaniu). RAND to liczba losowa z zakresu od 0 do 1, którą należy wybrać po każdej nieudanej aktualizacji.

    Gdy klient otrzyma pomyślną odpowiedź HTTP, musi wyjść z trybu wycofywania i zastosować minimalny czas oczekiwania określony powyżej.