Frekuensi Permintaan

Dokumen ini berlaku untuk metode berikut:

  • Update API (v4): fullHashes.find
  • Update API (v4): threatListUpdates.fetch
  • Perbarui permintaan

    Untuk mencegah kelebihan beban server dan mendapatkan manfaat dari perlindungan yang optimal, Update API (v4) menetapkan interval waktu terkait seberapa sering klien dapat mengirim permintaan ke server Safe Browsing untuk melakukan pemeriksaan URL (fullHashes.find) atau memperbarui database lokal (threatListUpdates.fetch).

    Permintaan awal untuk data harus terjadi pada interval acak antara 0 dan 1 menit setelah klien dimulai atau aktif. Permintaan berikutnya hanya dapat terjadi setelah batas waktu durasi tunggu minimum atau mode back-off diamati.

    Durasi tunggu minimum

    respons fullHashes.find dan respons threatListUpdates.fetch memiliki kolom minimumWaitDuration yang harus dipatuhi klien.

    Jika kolom minimumWaitDuration tidak ditetapkan dalam respons, klien dapat melakukan update sesering yang mereka inginkan dan mengirim permintaan threatListUpdates atau fullHashes sebanyak yang mereka inginkan.

    Jika kolom minimumWaitDuration disetel dalam respons, klien tidak dapat memperbarui lebih sering daripada panjang durasi tunggu. Misalnya, jika respons fullHashes berisi durasi tunggu minimum 1 jam, klien tidak boleh mengirim permintaan fullHashes apa pun hingga jam tersebut berlalu, meskipun pengguna mengunjungi URL yang awalan hash-nya cocok dengan database lokal. (Perhatikan bahwa klien dapat memperbarui lebih jarang dari durasi tunggu minimum, tetapi hal ini dapat berdampak negatif pada perlindungan.)

    Mode back-off

    Back-off otomatis berlaku untuk respons fullHashes.find dan respons threatListUpdates.fetch.

    Klien yang menerima respons HTTP yang gagal (yaitu, kode status HTTP apa pun selain 200 OK) harus memasuki mode back-off. Setelah berada dalam mode back-off, klien harus menunggu durasi waktu yang dihitung sebelum dapat mengeluarkan permintaan lain ke server.

    Klien harus menggunakan formula berikut untuk menghitung durasi waktu back-off:

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

    N sesuai dengan jumlah permintaan berturut-turut dan gagal yang dialami klien (dimulai dengan N=1 setelah permintaan pertama yang gagal). RAND adalah angka acak antara 0 dan 1 yang perlu dipilih setelah setiap update yang gagal.

    Setelah klien menerima respons HTTP yang berhasil, klien harus keluar dari mode back-off dan mengikuti durasi tunggu minimum yang ditetapkan di atas.