返回知识中心
平台

网络中断后如何恢复浏览器会话

用有界重试、检查点和隐私边界恢复浏览器工作,在网络中断后避免重复副作用,并保留可验证、可审计的结果与清理记录。

BotBrowser Team

文档中心

想直接进入 平台 文档吗?

这篇文章属于博客内容库。若你要步骤化配置、参考说明和持续更新,请直接进入对应 docs 分区。

网络中断不能证明浏览器动作是否完成。连接可能在请求前、服务器接受后或等待响应时断开。安全恢复需要保留会话分配、记录检查点,并且只重试能够确认完成的操作。

摘要

  • 先区分页面请求、websocket、代理路由和控制通道。
  • 在一次恢复代次中保持 profile、存储、语言和路由所有权稳定。
  • 读取和幂等操作使用有界重试;写入操作先确认再重复。
  • 浏览器可见清理、服务器撤销和主机删除是不同边界。
  • BotBrowser 可以重放授权检查点,但不能推断外部副作用是否已被接受。

目录

浏览器会话从检查点经过有界网络重试,进入已验证或隔离的结果。

固定会话契约

打开页面前记录任务引用、批准的 profile、存储所有者、浏览器版本、路由策略和 lease 代次。不要记录密码、页面正文或不必要的 URL。修复开始后拒绝旧代次的消息。

将持久意图与易失状态分开。意图包含动作、最后接受的检查点、重试预算和清理规则;打开的页面、内存、websocket 和进行中的请求都可能丢失。

使用检查点和决策表

检查点是应用定义的接受边界:响应已验证、文档已保存到批准位置,或业务操作收到明确确认。导航成功不等于副作用完成。

观察到的边界首要动作重试规则预期结果
读取无响应重连并重新读取带抖动的有界重试相同的已验证读取或分类失败
写入无确认查询应用状态只有幂等键允许重复只记录一个结果
控制通道丢失暂停接纳并协调不盲目重放页面动作一个所有者继续或隔离任务
路由不可用保持分配暂停不切换到无关路由可见的可恢复失败

如果应用没有状态查询或幂等契约,应停在检查点并请求人工协调。

使用有界网络预算恢复

区分请求、websocket、代理和控制故障,设置最大次数和最大时长,并使用有抖动的延迟。坚持声明的路由;改变路由可能改变网络身份,按策略应结束旧 lease 并创建新的会话。

预算用尽后标记可恢复失败,保留最后接受的检查点,排空 context,并隔离不确定的存储。记录代次、版本和类别,但不要记录 token 或私有 URL。

保护隐私并验证结果

Cookie、存储、IndexedDB、缓存、下载和服务器会话有不同生命周期。MDN Clear-Site-Data描述 origin 范围内的清理,不保证远程记录或主机文件被删除。W3C 隐私原则强调目的限制和数据最小化。

用结构化记录比较分配、路由、检查点顺序、完成确认和清理结果。用新的授权 context 验证预期应用状态;异步的服务器撤销应标记为待处理。

BotBrowser 能力与限制

BotBrowser 支持在声明的 profile、版本、路由和 context 中重复授权的会话检查点,并比较受控网络中断后的可见结果,但不能判断未确认写入是否被服务器接受、撤销服务器会话、检查主机全部痕迹,也不能保证运行不中断。应用所有者负责幂等性、授权、保留和最终验收。

相关阅读:长时间运行的浏览器 context 韧性和网络层浏览器一致性。

结论

恢复意图,而不是丢失的连接:固定所有权、检查最后边界、协调不确定写入并限制重试。下一步是在授权 fixture 中注入一次网络中断,同时验证应用结果和清理记录。

常见问题

每个 timeout 都应重试吗?

不应。只有读取或明确幂等的操作可重试;未知写入应先查询状态。

新 context 能继续旧会话吗?

只有策略允许使用同一 profile 且存储完整时可以;易失的页面内存不会自动恢复。

清理浏览器数据会撤销服务器会话吗?

不会。两者是不同边界,需要不同证据。

BotBrowser 验证什么?

它重放授权检查点并比较可见结果,不认证远程副作用或主机删除。

来源

#浏览器会话#网络中断#恢复#数据一致性#隐私#BotBrowser

让 BotBrowser 从研究走向生产

先用这些指南理解模型,再进入跨平台验证、隔离上下文和面向规模化的浏览器部署。