更新限制
設定限制
如「資料庫更新」一節所述,更新本機資料庫時,用戶端可以使用hashes.search
要求中的 maxUpdateEntries
和 maxDatabaseEntries
欄位指定大小限制。只有在記憶體或頻寬有限制時,用戶端才應設定限制。
- 用戶端可以指定更新回應大小上限 (
maxUpdateEntries
),以項目數為單位 (1 個項目 = 1 個新增或 1 個移除)。 - 用戶端可以指定資料庫大小上限 (
maxDatabaseEntries
),以項目數量為單位 (資料庫中的絕大多數項目都是 4 位元組的雜湊前置字元,因此可以合理假設 1 個項目 ≈ 4 個位元組)。
頻寬與儲存空間
雖然用戶端可以為更新回應和資料庫大小指定任意大小,但 Web Risk 伺服器只會預先產生有限數量的可能更新回應和資料庫大小。
- 用戶端應使用更新回應大小 (
maxUpdateEntries
) 限制頻寬用量。 - 用戶端應使用資料庫大小 (
maxDatabaseEntries
) 限制裝置上所需的 RAM 或磁碟儲存空間量。
這兩項限制都會影響更新的資料庫大小,進而影響為使用者提供的保護程度。也就是說,本機資料庫越大,保護效果越好。
設定限制條件的指引
安全瀏覽清單的大小可能會逐漸或突然變動。用戶端應為名單更新要求設定 maxUpdateEntries
,以限制名單更新回應大小上限,並在無法處理大型更新時提升可靠性。
如果沒有更嚴格或較寬鬆的規定,Google 建議使用 maxUpdateEntries=16777216
。由於每個雜湊前置字元的典型清單項目大小為 4 個位元組,因此每個清單約為 67 MB。Google 建議行動用戶端使用較小的限制 maxUpdateEntries=2097152
,因為行動裝置的效能通常較低。以每個雜湊前置字串 4 個位元組的典型清單項目大小來看,這相當於每個清單約 8 MB。
安全瀏覽清單的大小和成長率各不相同。不過,用戶端應根據每份清單允許的記憶體或頻寬用量上限,為所有清單設定相同限制。
為提升穩定性,Google 建議用戶端實作遙測功能,偵測記憶體或頻寬用量是否過高,並建立機制,快速將新限制傳送給用戶端。
用戶端狀態
Web Risk 伺服器絕不會傳送更新,導致用戶端狀態過時;每次更新要求後,用戶端都會完全保持在最新狀態。舉例來說,如果用戶端目前有 4096 個項目的資料庫,但最多只想要下載 2048 個差異,如果用戶端真的過時,伺服器可能會將用戶端重設為 2048 個項目的資料庫。