更新限制
设置限制
在更新本地数据库时,如数据库更新中所述,客户端可以使用 hashes.search
请求中的 maxUpdateEntries
和 maxDatabaseEntries
字段指定大小限制。只有当客户端具有内存或带宽限制时,才应设置限制。
- 客户端可以在条目数(1 个条目 = 1 个添加项或 1 个移除项)中指定最大更新响应大小 (
maxUpdateEntries
)。 - 客户端可以在条目数(数据库中的大多数条目都是 4 字节的哈希前缀,因此假设 1 个条目约 4 个字节)中指定最大数据库大小 (
maxDatabaseEntries
)。
带宽与存储空间
虽然客户端可以为更新响应和数据库大小指定任意大小,但 Web Risk 服务器只会预先生成有限数量的可能的更新响应和数据库大小。
- 客户端应使用更新响应大小 (
maxUpdateEntries
) 来限制带宽用量。 - 客户端应使用数据库大小 (
maxDatabaseEntries
) 来限制设备所需的 RAM 或磁盘存储量。
这两个限制都会影响正在更新的数据库大小,因此会影响为用户提供的保护的数量。这意味着本地数据库越大,保护措施越好。
限制条件设置指南
安全浏览列表的大小可能会逐渐或突然发生变化。客户端应为列表更新请求设置 maxUpdateEntries
,这样可以限制列表更新响应大小的最大值,并提高无法处理大型更新时的可靠性。
如果没有更严格的要求或没有不太严格的要求,Google 建议使用 maxUpdateEntries=16777216
。根据每个哈希前缀的典型列表条目大小(4 个字节),这相当于每个列表大约 67 MB。Google 建议为移动客户端使用较小的限制 maxUpdateEntries=2097152
,因为它们的功能通常不太强大。按照每个哈希前缀的典型列表条目大小(4 个字节),这相当于每个列表大约 8 MB。
安全浏览名单的大小和增长率各不相同。但是,客户端应根据每个列表允许的最大内存或带宽用量,为所有列表设置相同的限制。
为了提高可靠性,Google 建议客户端实现用于检测内存或带宽用量超额的遥测,以及能够快速为客户端提供新限制的机制。
客户端状态
Web Risk 服务器绝不会发送使客户端处于过期状态的更新;客户端在每个更新请求后都将是最新的。例如,如果客户端当前有一个含有 4096 个条目的数据库,但只希望下载不超过 2048 个增量,则服务器可能会在客户端真的过期时将其重置为可包含 2048 个条目的数据库。