Frequência de solicitações

Este documento se aplica aos seguintes métodos:

  • API Update (v4): fullHashes.find
  • API Update (v4): threatListUpdates.fetch
  • Solicitações de atualização

    Para evitar a sobrecarga do servidor e aproveitar a proteção ideal, a API Update (v4) impõe intervalos de tempo para a frequência com que um cliente pode enviar solicitações ao servidor da Navegação segura para realizar verificações de URL (fullHashes.find) ou atualizar o banco de dados local (threatListUpdates.fetch).

    A solicitação inicial de dados precisa ocorrer em um intervalo aleatório entre 0 e 1 minuto após o cliente ser iniciado ou ativado. As solicitações seguintes só podem acontecer depois que o limite de tempo da duração mínima de espera ou do modo de espera for observado.

    Duração mínima de espera

    Tanto a resposta fullHashes.find quanto a resposta threatListUpdates.fetch têm um campo minimumWaitDuration que os clientes precisam obedecer.

    Se o campo minimumWaitDuration não estiver definido na resposta, os clientes poderão atualizar com a frequência que quiserem e enviar quantas solicitações threatListUpdates ou fullHashes quiserem.

    Se o campo minimumWaitDuration for definido na resposta, os clientes não poderão atualizar com mais frequência do que a duração da espera. Por exemplo, se uma resposta fullHashes tiver uma duração de espera mínima de 1 hora, o cliente não poderá enviar solicitações fullHashes até que essa hora tenha passado, mesmo que o usuário esteja visitando um URL cujo prefixo de hash corresponda ao banco de dados local. Os clientes podem atualizar com menos frequência do que a duração mínima de espera, mas isso pode afetar negativamente a proteção.

    Modo de retirada

    A retirada automática se aplica à resposta completaHashes.find e à resposta threatListUpdates.fetch.

    Os clientes que recebem uma resposta HTTP malsucedida (ou seja, qualquer código de status HTTP diferente de 200 OK) precisam entrar no modo de espera. No modo de espera, os clientes precisam aguardar o tempo calculado antes de emitir outra solicitação ao servidor.

    Os clientes precisam usar a seguinte fórmula para calcular a duração do tempo de espera:

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

    N corresponde ao número de solicitações consecutivas e malsucedidas que o cliente enfrenta (começando com N=1 após a primeira solicitação malsucedida). RAND é um número aleatório entre 0 e 1 que precisa ser escolhido após cada atualização malsucedida.

    Quando um cliente recebe uma resposta HTTP bem-sucedida, ele precisa sair do modo de espera e seguir a duração mínima de espera especificada acima.