W tym dokumencie można stosować następujące metody:
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.