更新限制

本文档适用于以下方法:Update API (v4)threatListUpdates.fetch

设置限制

更新本地数据库(请参阅数据库更新)时,客户端可以使用 threatListUpdates.fetch 请求中的 maxUpdateEntriesmaxDatabaseEntries 字段来指定大小限制。客户端应设置限制条件,以保持客户端 RAM、磁盘和带宽的可预测性,并防止名单增长。

  • 客户端可以指定更新响应大小 (maxUpdateEntries) 的条目数上限(1 个条目 = 1 次添加或移除 1 次)。
  • 客户端可以在条目数中指定数据库大小上限 (maxDatabaseEntries)(数据库中的大部分条目是 4 字节的哈希前缀,因此可以合理地假设 1 个条目约为 4 个字节)。

带宽与存储空间

虽然客户端可以指定任意大小的更新响应和数据库大小,但安全浏览服务器只会预先生成有限数量可能的更新响应大小和数据库大小。

  • 客户端应使用更新响应大小 (maxUpdateEntries) 来限制带宽用量。
  • 客户端应使用数据库大小 (maxDatabaseEntries) 来限制设备上所需的 RAM 或磁盘存储空间容量。
这两项限制都会影响正在更新的数据库的大小,因此会影响为用户提供的保护量(即,本地数据库越大,保护效果越好)。

限制条件设置指南

安全浏览列表的大小可能会逐渐或突然发生变化。客户端应为列表更新请求设置 maxUpdateEntries,这样可以限制列表更新响应大小的最大值,并提高无法处理大型更新时的可靠性。

如果没有更严格的要求或没有不太严格的要求,Google 建议使用 maxUpdateEntries=16777216。根据每个哈希前缀的典型列表条目大小(4 个字节),这相当于每个列表大约 67 MB。Google 建议为移动客户端使用较小的限制 maxUpdateEntries=2097152,因为它们的功能通常不太强大。按照每个哈希前缀的典型列表条目大小(4 个字节),这相当于每个列表大约 8 MB。

安全浏览名单的大小和增长率各不相同。但是,客户端应根据每个列表允许的最大内存或带宽用量,为所有列表设置相同的限制。

为了提高可靠性,Google 建议客户端实现用于检测内存或带宽用量超额的遥测,以及能够快速为客户端提供新限制的机制。

客户端状态

安全浏览服务器绝不会发送会导致客户端处于过时状态的更新;每次发出更新请求后,客户端都会保持最新状态。例如,如果客户端当前的数据库包含 4096 个条目,但只想下载最多 2048 个增量,如果客户端确实过旧,服务器可能会将客户端重置为 2048 数据库。