Frequenza di richiesta

Questo documento si applica ai seguenti metodi:

  • API Update (v4): fullHashes.find
  • API Update (v4): threatListUpdates.fetch
  • Richieste di aggiornamento

    Per evitare il sovraccarico del server e trarre vantaggio da una protezione ottimale, l'API Update (v4) impone intervalli di tempo per stabilire la frequenza con cui un client può inviare richieste al server di Navigazione sicura per eseguire i controlli degli URL (fullHashes.find) o per aggiornare il database locale (threatListUpdates.fetch).

    La richiesta iniziale dei dati deve avvenire in un intervallo casuale compreso tra 0 e 1 minuto dopo l'avvio o la riattivazione del client. Le richieste successive possono verificarsi solo dopo che è stato rispettato il limite di tempo della durata minima di attesa o della modalità backoff.

    Durata minima di attesa

    Sia la risposta fullHashes.find sia la rispostathreatListUpdates.fetch hanno un campo minimumWaitDuration a cui i client devono attenersi.

    Se il campo minimumWaitDuration non è impostato nella risposta, i client possono eseguire l'aggiornamento con la frequenza che vogliono e inviare tutte le richieste threatListUpdates o fullHashes che vogliono.

    Se il campo minimumWaitDuration è impostato nella risposta, i client non possono eseguire aggiornamenti più spesso della durata dell'attesa. Ad esempio, se una risposta fullHashes contiene un tempo di attesa minimo di 1 ora, il client non deve inviare richieste fullHashes fino a quando non sarà trascorsa questa ora, anche se l'utente visita un URL il cui prefisso hash corrisponde al database locale. Tieni presente che i client possono eseguire gli aggiornamenti meno spesso rispetto alla durata di attesa minima, ma questo può influire negativamente sulla protezione.

    Modalità backoff

    Il backoff automatico si applica sia alla risposta fullHashes.find sia alla rispostathreatListUpdates.fetch.

    I client che ricevono una risposta HTTP non riuscita (ovvero qualsiasi codice di stato HTTP diverso da 200 OK) devono attivare la modalità di backoff. Una volta in modalità di backoff, i client devono attendere la durata di tempo calcolata prima di poter inviare un'altra richiesta al server.

    Per calcolare la durata del tempo di backoff, i client devono utilizzare la formula seguente:

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

    N corrisponde al numero di richieste consecutive non riuscite che il client ha ricevuto (a partire da N=1 dopo la prima richiesta non riuscita). RAND è un numero casuale compreso tra 0 e 1 che deve essere scelto dopo ogni aggiornamento non riuscito.

    Una volta che un client riceve una risposta HTTP riuscita, deve uscire dalla modalità di backoff e seguire la durata minima di attesa specificata sopra.