更新限制
设置限制
在更新本地数据库时,如数据库更新中所述,客户端可以使用 hashes.search
请求中的 maxUpdateEntries
和 maxDatabaseEntries
字段指定大小限制。只有当客户端具有内存或带宽限制时,才应设置限制。
- 客户端可以在条目数(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 个条目的数据库。