要求頻率

本文件適用於下列方法:

  • Update API (v4)fullHashes.find
  • Update API (v4)threatListUpdates.fetch
  • 更新要求

    為了避免伺服器超載並受益於最佳防護,Update API (v4) 會設定時間間隔,限制用戶端可傳送要求至安全瀏覽伺服器以執行網址檢查 (fullHashes.find) 或更新本機資料庫 (threatListUpdates.fetch) 的頻率。

    初始資料要求必須在用戶端啟動或喚醒後的 0 到 1 分鐘之間隨機進行。只有在觀察到最短等待時間輪詢模式時間限制後,系統才會執行後續要求。

    最短等待時間

    fullHashes.find 回應threatListUpdates.fetch 回應都有 minimumWaitDuration 欄位,供用戶端遵循。

    如果未設定回應中的 minimumWaitDuration 欄位,用戶端可以按需求更新,並傳送任意數量的 threatListUpdatesfullHashes 要求。

    如果回應中的 minimumWaitDuration 欄位已設定,用戶端的更新頻率將無法超過等待時間長度。舉例來說,如果 fullHashes 回應包含至少 1 小時的等待時間,則即便使用者造訪的雜湊前置字串與本機資料庫相符,用戶端也不得在該小時結束前傳送任何 fullHashes 要求。(請注意,用戶端更新的頻率可能會低於最短等待時間,但這可能會對防護造成負面影響)。

    輪詢模式

    自動輪詢適用於 fullHashes.find responsethreatListUpdates.fetch 回應

    用戶端收到失敗 HTTP 回應 (也就是 200 OK 以外的任何 HTTP 狀態碼) 必須進入輪詢模式。進入輪詢模式後,用戶端必須等待計算出的時間時間長度,才能向伺服器發出其他要求。

    用戶端必須使用以下公式計算輪詢時間長度:

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

    N 代表用戶端體驗的連續失敗要求數量 (在第一次要求失敗後從 N=1 開始)。RAND 是介於 0 到 1 的隨機數字,必須在每次更新失敗後選取。

    用戶端收到成功的 HTTP 回應後,用戶端必須結束輪詢模式,並遵循上方指定的最短等待時間