浏览器代理带宽预算:扩容前先测清真实成本
按流量计费的代理在小规模测试中可能很便宜,进入生产后却很难预测。常见错误是直接用页面标称大小乘以 URL 数量。真实浏览器还会传输跳转、脚本、API、字体、分析请求、重试和后台流量;缓存与 Service Worker 还可能让不完整的测量漏掉实际请求。

本指南适用于经过授权的浏览器自动化、市场研究、广告验证和公开数据采集。不同供应商对计费流量的定义可能不同,因此必须先确认账单口径,再把测量结果用于采购预测。
先分清真正计费的单位
至少区分三类数值:网络实际传输的压缩响应与相关开销、浏览器解压后的资源大小,以及供应商账户记录的计费流量。Chrome 开发者工具会区分传输大小与加载后的未压缩大小。流量代理通常更接近按传输字节计费,但最终应以供应商账本为准。
同时保存浏览器观测总量与供应商计量总量,两者比值应作为对账系数,而不是被隐藏的“误差”。
定义一个可复现的业务旅程
先选择一个代表真实结果的旅程,例如加载商品页、打开地区搜索结果、验证广告或采集获准公开记录。固定浏览器版本、视口、代理地区与产品、认证与会话策略、缓存状态、Service Worker 策略、等待条件、资源拦截规则、重试上限和成功定义。
同一旅程分别运行冷启动和热缓存上下文。持久化上下文可能节省流量,但也会把 Cookie、缓存和身份状态带到后续任务;只有在符合授权工作流与隐私政策时才使用。
避免流量捕获盲区
使用浏览器上下文网络事件或 HAR,而不是只统计主文档。应包含 XHR、fetch、字体、媒体、跳转、失败请求和弹窗流量。若请求拦截缺失,应检查请求是否由 Service Worker 接管。受控测试可以先阻止 Service Worker 建立纯网络基线,再允许它运行以测量真实应用行为。
每个请求只保留脱敏字段:运行与旅程编号、地区、资源类型、主机别名、状态类别、传输字节、缓存/Service Worker 标记、重试序号与耗时。不得记录代理密码、Authorization、完整敏感 URL 或响应正文。
建立四种基线
至少测试以下组合:冷缓存且阻止 Service Worker、热缓存且阻止、冷缓存且允许、热缓存且允许。前两种分别显示纯网络基线与浏览器缓存收益,后两种反映应用 Worker 开销和更接近复用会话的表现。
每种条件在重要地区至少重复五次,报告中位数与 p95。差距过大通常意味着第三方资源、重试、内容实验或地区响应不稳定。
代理响应完整性测试可帮助识别小体积的拦截页或截断响应。把低流量失败误判为成功,会让预算过度乐观。
按成功结果计算单位成本
单次尝试流量等于该尝试全部请求传输字节之和。把失败与重试纳入后,单位成功流量应计算为“所有尝试字节 ÷ 成功结果数”。月度流量再乘计划成功量和季节性系数,并按照供应商使用的十进制或二进制单位换算。
最终预算还需乘浏览器与供应商的对账系数,以及基于实际波动设置的余量系数。中位数和 p95 应形成预测区间,不得把请求数、页面数和成功结果混用为同一个分母。
按资源类别定位浪费
按资源类型、主机别名和发起方聚合流量。常见浪费包括:超出任务需要的大图、折叠区域视频和动画、重复字体、与结果无关的分析请求、结果就绪后的 API 轮询、重复标签页与预取、过高分辨率截图,以及应用与代理两层同时重试。
只有在证明资源不影响正确渲染、同意流程、风控与业务结果后才拦截。修改前后必须比较输出完整性。例如广告视觉验证不能为了省流量而直接关闭全部图片。
为重试设置字节预算
只按次数限制重试会忽略响应大小。20 KB 的失败 API 与 6 MB 的失败页面不应消耗相同预算。应同时设置最大尝试次数和最大重试字节,例如把单旅程重试流量限制为基线 p95 的 1.5 倍,任一限制触发即停止。
只重试被分类为暂时性的故障,只有路由证据明确时才更换出口,并加入抖动避免同步请求。代理重试风暴预防指南提供完整控制流程。
与供应商账本对账
使用独立子账号或流量标签运行短时间窗口,记录供应商账本前后值,等待报表延迟后再与浏览器总量比较。差异可能来自上传流量、请求头、失败隧道、聚合与取整、并发任务污染、遗漏的 Worker/弹窗请求、混淆压缩与解压大小,或账本时区不同。
不要用一次噪声测试指控计费异常。应使用隔离身份和稳定负载重复验证,并保留脱敏证据。
单位成本稳定后再增加并发
先在并发 1 下获得单位成功流量,再逐步提高并发,同时跟踪成功率、p95 单位字节、时延和重试流量。当新增并发造成的重试增长超过成功产出时停止扩容。
代理并发饱和测试可把带宽增长与容量崩溃区分开。每 GB 价格更低并不能弥补单位成功流量翻倍。
运营仪表盘
按旅程与地区跟踪成功结果、中位数和 p95 单位传输字节、重试流量占比、缓存与 Service Worker 命中率、主要资源类型与主机别名、对账系数、单位成功成本、拦截页/完整性失败率,以及剩余预算和预计耗尽日期。
告警应关注单位成功流量变化,而不只是总流量。业务处理更多成功任务时,总流量自然上升;单位成本才会暴露回归。
检查清单
- [ ] 已记录供应商计费规则与单位。
- [ ] 业务旅程具有明确成功条件。
- [ ] 已比较冷热缓存及 Service Worker 开关。
- [ ] 已捕获全部请求类型、跳转、失败与弹窗。
- [ ] 日志不含凭据、敏感 URL 和响应正文。
- [ ] 按地区报告中位数与 p95 单位流量。
- [ ] 失败和重试已计入单位成本。
- [ ] 资源拦截经过结果正确性验证。
- [ ] 重试同时受次数与字节预算限制。
- [ ] 浏览器测量已与隔离供应商账本对账。
- [ ] 仅在单位成本稳定时提高并发。
- [ ] 预测包含实际波动与报表延迟。
常见问题
应使用页面未压缩大小做代理预算吗?
通常不应。先使用网络传输字节,再与供应商账本对账。未压缩大小适合内存和性能分析,但可能明显高估计费流量。
热缓存一定会降低付费流量吗?
不一定。缓存控制、重新验证、Service Worker 和隔离上下文都会改变结果,必须按实际会话策略测试。
能否关闭全部图片节省带宽?
只有图片与授权结果无关且验证证明输出仍正确时才可以。视觉验证、依赖布局的采集和风控流程可能需要图片。
为什么供应商流量高于浏览器捕获?
可能是遗漏 Worker 或弹窗流量、上传、隧道开销、失败、并发任务、取整或报表延迟。应先用隔离测试身份验证。
合规说明
只测量已获授权的工作流和目标,遵守站点条款、适用的 robots 指引、隐私义务、速率限制与数据最小化要求。不得为了带宽估算绕过访问控制或额外收集敏感响应内容。