Firefox 155 支持查看 NDJSON:代理数据质量检查的新入口

彩色逐行互联网数据包经过轮换代理节点进入浏览器检查界面

Firefox 155 于 2026 年 9 月 1 日发布。开发者说明中有一项对数据团队很实用的变化:内置 JSON Viewer 现在可以打开使用常见 JSON Lines 媒体类型或 .jsonl 扩展名提供的 NDJSON 文档。

这与代理支持的数据采集有关,因为很多运营记录天然适合追加写入。每一行可以代表一次请求、一个代理出口、一次重试、一项解析结果或一个验收决定。浏览器直接查看这些记录不能替代自动验证,但能更快地从失败任务定位到需要检查的具体事件。

公开来源说明:Mozilla MDN,《Firefox 155 release notes for developers》,2026 年 9 月 1 日发布。

Firefox 155 改变了什么

Firefox 的 JSON Viewer 过去主要面向普通 JSON 文档。Firefox 155 将范围扩展到以 application/jsonlinesapplication/x-ndjsontext/jsonl 提供,或使用 .jsonl 文件名的 JSON Lines 文档。

NDJSON 每行保存一个有效 JSON 值。与一个巨大的 JSON 数组不同,追加式数据流可以边生成边处理。即使采集进程在第 8,500 行后停止,前面完整的行仍然可以单独解析和检查。

浏览器功能只是查看便利,并不能证明每行符合模式、没有遗漏,或敏感值已经清除。这些仍然是数据管道的责任。

为什么代理团队值得关注

一个笼统的成功计数无法说明坏结果来自代理、目标响应、重试策略还是解析器。精简的逐行事件可以保留区分这些层次所需的证据。

每次获授权请求可记录:

字段用途
事件编号关联请求、响应与验证证据
UTC 时间戳排列不同工作进程与地区的事件
目标标签标识批准目标而不暴露敏感 URL
代理网关标签对路由配置分组而不保存凭据
会话编号哈希关联粘性会话内的事件
出口指纹区分轮换,同时减少个人数据保留
HTTP 状态或错误类别区分目标响应与传输失败
尝试次数揭示重试放大
分阶段延迟定位连接、TLS、首字节或读取等待
验证结果说明是否产生可用数据

字段名应保持稳定,并显式写入空值。不要让一个字段承担多个含义,也不要依赖行号猜测缺失内容。

设计“一行一个事件”

最实用的单位是边界明确的事件。每行应能够独立解析,并足够小,便于检查、过滤和安全传输。

一个实用事件模型应分开:

  1. 请求意图:市场、协议、会话模式与获授权目标标签;
  2. 路由观察:网关、地址族与脱敏出口身份;
  3. 响应证据:状态、内容类型、字节数与时间;
  4. 处理结果:解析器版本、模式结果与接受记录数;
  5. 控制决定:重试、轮换、退避、隔离或停止。

不要保存原始代理 URL,其中可能包含用户名、密码、网关地址和定向参数。秘密应留在批准的秘密管理器中,事件只写非敏感配置标签。

浏览器查看之前先加入完整性控制

浏览器查看是排错最后一公里,不是第一道防线。数据流应先通过确定性控制生成和验证:

  • 每行包含模式版本;
  • 唯一事件编号和父操作编号;
  • 每个工作流内单调递增的序号;
  • 每项任务都有明确开始与完成事件;
  • 导出诊断包具有校验和;
  • 汇总尝试、成功、拒绝与重试数量;
  • 验证器报告第一条非法行和全部缺失必填字段。

多个工作进程写入同一文件时,不要假设物理行序就是因果顺序,应使用时间戳、操作编号与序号。

用 Firefox 155 完成有限检查

代理任务失败时,使用已脱敏的诊断副本:

  1. 确认文件使用支持的 JSON Lines 媒体类型或 .jsonl 扩展名;
  2. 用 Firefox 155 或更高版本打开;
  3. 找到第一条验证失败或传输错误事件;
  4. 沿父操作编号与会话哈希查找关联行;
  5. 对比前一次尝试、路由决定与后续重试;
  6. 检查出口、地址族或网关是否变化;
  7. 确认最终接受记录数与下游存储一致;
  8. 记录事故原因,但不要把秘密复制到工单。

复杂网络事故可以结合代理绕过审计代理并发爬坡测试排查。

发现常见代理数据故障

重试膨胀

按操作编号聚合并计算尝试次数。一个任务可能报告完成 10,000 个操作,却消耗 25,000 次代理请求。最终结果与每次尝试都必须记录,才能看到带宽成本与目标负载。

会话漂移

在粘性会话内比较连续事件的路由和出口字段。正常轮换与意外会话切换需要不同的修复方法。

输出不完整

必须有完成事件,并将其中的数量与已接受事件数核对。语法正确的文件仍可能因工作进程崩溃而提前结束。

解析器回归

记录解析器和模式版本。如果 HTTP 成功率稳定,但验证失败在发布后突然上升,代理可能正常,问题可能在解析器。

地址族混用

显式记录 IPv4 和 IPv6,否则双栈差异可能表现为随机地域或延迟波动。

设置发布门槛

推广 NDJSON 日志变更前,应要求:

  • 每行都能独立解析;
  • 每种事件类型的必填字段完整;
  • 秘密扫描未发现代理凭据、Cookie、令牌或个人载荷;
  • 任务开始、完成与数量核对通过;
  • 重试和路由变化保持可见;
  • 截断与畸形测试文件按预期失败;
  • 大样本可供人工查看,但人工查看不是唯一验证;
  • 已记录保留、访问与删除规则。

使用通过、条件通过、失败、证据不足四种结论。文件能在 Firefox 打开,但数量核对失败,不能算通过。

运营检查清单

  • 将测试配置升级到 Firefox 155 或更高版本。
  • 用受支持的 JSON Lines 媒体类型提供诊断副本。
  • 每行只放一个可独立解析的事件。
  • 添加模式、操作、事件与序号标识。
  • 记录每次重试,而不只是最终成功。
  • 使用标签记录网关和会话,不写凭据。
  • 分开路由、响应、解析与业务验证字段。
  • 将任务汇总与下游接受记录核对。
  • 分享前对每次导出执行秘密扫描。
  • 为诊断文件设置访问控制与删除日期。

常见问题

Firefox 155 会验证 NDJSON 模式吗?

不会。它只是让受支持的 JSON Lines 文档更易查看。模式验证、必填字段检查和数量核对必须由数据管道完成。

是否一行代表一个页面?

不一定。一次请求可能产生多条记录,一个页面也可能依赖多次请求。应采用边界清楚的事件,并用操作编号关联。

NDJSON 能否为复现保存原始代理凭据?

不应保存。只写安全的配置标签,获授权复现时再从批准的秘密管理器读取凭据。

只保留最终成功行够吗?

不够。需要保存尝试级证据,才能测量重试、路由变化、成本与部分失败。

合规说明

只采集和检查获授权的数据,遵守目标条款、供应商合同、隐私要求与速率限制。诊断流不得保存认证秘密、个人载荷或未受控目标 URL。代理应服务于合法测试和数据运营,不得用于规避访问控制、隐藏滥用或制造虚假流量。