Frekuensi Permintaan

Dokumen ini berlaku untuk metode berikut:

  • Update API (v4): fullHashes.find
  • Update API (v4): threatListUpdates.fetch
  • Permintaan pembaruan

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

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

    Durasi tunggu minimum

    Baik respons fullHashes.find dan responsthreatListUpdates.fetch memiliki kolom minimumWaitDuration yang harus dipatuhi oleh klien.

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

    Jika kolom minimumWaitDuration ditetapkan dalam respons, klien tidak dapat diperbarui lebih sering dari 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 di skrip untuk menyiapkan database. (Perhatikan bahwa klien bisa memperbarui lebih jarang dari durasi tunggu minimum, tetapi dapat berdampak negatif terhadap perlindungan.)

    Mode back-off

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

    Klien yang menerima respons HTTP yang gagal (yaitu, kode status HTTP apa pun selain 200 OK) harus memasuki mode back-off. Setelah dalam mode {i>back-off<i}, klien harus menunggu waktu yang dihitung durasi sebelum mereka dapat mengirimkan 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 harus dipilih setelah setiap pembaruan gagal.

    Setelah klien menerima respons HTTP yang berhasil, klien harus keluar dari mode {i>back-off<i} dan mengikuti durasi tunggu minimum yang ditentukan di atas.