更新限制

设置限制

在更新本地数据库时,如数据库更新中所述,客户端可以使用 hashes.search 请求中的 maxUpdateEntriesmaxDatabaseEntries 字段指定大小限制。只有当客户端具有内存或带宽限制时,才应设置限制。

  • 客户端可以在条目数(1 个条目 = 1 个添加项或 1 个移除项)中指定最大更新响应大小 (maxUpdateEntries)。
  • 客户端可以在条目数(数据库中的大多数条目都是 4 字节的哈希前缀,因此假设 1 个条目约 4 个字节)中指定最大数据库大小 (maxDatabaseEntries)。

带宽与存储空间

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

  • 客户端应使用更新响应大小 (maxUpdateEntries) 来限制带宽用量。
  • 客户端应使用数据库大小 (maxDatabaseEntries) 来限制设备所需的 RAM 或磁盘存储量。

这两个限制都会影响正在更新的数据库大小,因此会影响为用户提供的保护的数量。这意味着本地数据库越大,保护措施越好。

设置约束条件的指南

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

如果没有更严格的要求或更宽松的要求,Google 建议使用 maxUpdateEntries=16777216。假设每个哈希前缀的典型列表条目大小为 4 个字节,则这相当于每个列表大约为 67 兆字节。Google 建议为移动客户端使用较小的限制 maxUpdateEntries=2097152,因为它们通常性能较弱。如果每个哈希前缀的典型列表条目大小为 4 个字节,则这相当于每个列表大约为 8 兆字节。

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

为了提高可靠性,Google 建议客户实现用于检测内存或带宽超用情况的遥测功能,以及用于快速向客户传达新限制条件的机制。

客户端状态

Web Risk 服务器绝不会发送使客户端处于过期状态的更新;客户端在每个更新请求后都将是最新的。例如,如果客户端当前有一个含有 4096 个条目的数据库,但只希望下载不超过 2048 个增量,则服务器可能会在客户端真的过期时将其重置为可包含 2048 个条目的数据库。