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/jsonlines、application/x-ndjson、text/jsonl 提供,或採用 .jsonl 檔名的 JSON Lines 文件。
NDJSON 每一行保存一個有效 JSON 值。與單一大型 JSON 陣列不同,附加式資料流可以一邊產生一邊處理。即使蒐集程序在第 8,500 行後停止,前面的完整行仍可獨立解析與檢查。
瀏覽器功能只是檢視便利,不能證明每一行符合綱要、沒有遺漏,或敏感值已移除。這些仍是資料管線的責任。
為什麼代理團隊應該關注
籠統的成功計數無法說明壞結果來自代理、目標回應、重試策略或解析器。精簡的逐行事件可以保留區分這些層級所需的證據。
每次獲授權請求可以記錄:
| 欄位 | 用途 |
|---|---|
| 事件編號 | 關聯請求、回應與驗證證據 |
| UTC 時間戳記 | 排列不同工作程序與地區事件 |
| 目標標籤 | 標識核准目的地而不暴露敏感 URL |
| 代理閘道標籤 | 對路由設定分組而不保存憑證 |
| 工作階段編號雜湊 | 關聯黏性工作階段內的事件 |
| 出口指紋 | 區分輪替並減少個人資料保留 |
| HTTP 狀態或錯誤類別 | 區分目標回應與傳輸失敗 |
| 嘗試次數 | 揭露重試放大 |
| 分階段延遲 | 定位連線、TLS、首位元組或讀取等待 |
| 驗證結果 | 說明是否產生可用資料 |
欄位名稱應保持穩定,並明確寫入空值。不要讓一個欄位承擔多種意義,也不要依靠行號推測缺漏內容。
設計「一行一個事件」
最實用的單位是界線明確的事件。每一行應可獨立解析,並足夠精簡,便於檢查、篩選和安全傳輸。
實用事件模型應分開:
- 請求意圖:市場、協定、工作階段模式與獲授權目標標籤;
- 路由觀測:閘道、位址族與去識別化出口身分;
- 回應證據:狀態、內容類型、位元組數及時間;
- 處理結果:解析器版本、綱要結果與接受記錄數;
- 控制決定:重試、輪替、退避、隔離或停止。
不要保存原始代理 URL,其中可能包含使用者名稱、密碼、閘道位址與定向參數。機密應留在核准的機密管理器中,事件只寫非敏感設定標籤。
使用瀏覽器前先加入完整性控制
瀏覽器檢視是除錯的最後一公里,不是第一道防線。資料流應先由確定性控制產生與驗證:
- 每一行都有綱要版本;
- 唯一事件編號與父操作編號;
- 每個工作程序資料流內單調遞增的序號;
- 每項工作都有明確開始與完成事件;
- 匯出診斷包具有校驗和;
- 匯總嘗試、成功、拒絕及重試數量;
- 驗證器回報第一條非法行及所有缺少的必要欄位。
多個工作程序寫入同一檔案時,不要假設實體行序就是因果順序,應使用時間戳記、操作編號與序號。
用 Firefox 155 完成有限檢查
代理工作失敗時,使用已去識別化的診斷副本:
- 確認檔案使用受支援的 JSON Lines 媒體類型或
.jsonl副檔名; - 使用 Firefox 155 或更新版本開啟;
- 找出第一條驗證失敗或傳輸錯誤事件;
- 沿著父操作編號與工作階段雜湊查找關聯行;
- 比較前一次嘗試、路由決定及後續重試;
- 檢查出口、位址族或閘道是否改變;
- 確認最終接受記錄數與下游儲存一致;
- 記錄事故原因,但不要把機密複製到工單。
找出常見代理資料故障
重試膨脹
依操作編號分組並計算嘗試次數。一項工作可能回報完成 10,000 個操作,卻消耗 25,000 次代理請求。最終結果與每次嘗試都應記錄,才能看見頻寬成本及目標負載。
工作階段漂移
在黏性工作階段內比較連續事件的路由與出口欄位。正常輪替與意外工作階段切換需要不同修正方式。
輸出不完整
必須有完成事件,並將其中數量與已接受事件數核對。語法正確的檔案仍可能因工作程序當機而提早結束。
解析器迴歸
保存解析器及綱要版本。若 HTTP 成功率穩定,但驗證失敗在發佈後突然上升,代理可能正常,問題可能在解析器。
位址族混用
明確記錄 IPv4 與 IPv6,否則雙棧差異可能表現為隨機地理或延遲波動。
設定發佈門檻
推廣 NDJSON 記錄變更前,應要求:
- 每一行都能獨立解析;
- 每種事件類型的必要欄位完整;
- 機密掃描未發現代理憑證、Cookie、權杖或個人載荷;
- 工作開始、完成及數量核對通過;
- 重試與路由變化保持可見;
- 截斷及畸形測試檔案按預期失敗;
- 大型樣本可供人工檢視,但人工檢視不是唯一驗證;
- 已記錄保留、存取及刪除規則。
使用通過、條件通過、失敗、證據不足四種結論。檔案能在 Firefox 開啟,但數量核對失敗,不能視為通過。
營運檢查清單
- 將測試設定檔升級到 Firefox 155 或更新版本。
- 使用受支援的 JSON Lines 媒體類型提供診斷副本。
- 每一行只放一個可獨立解析的事件。
- 加入綱要、操作、事件與序號標識。
- 記錄每次重試,而不只是最終成功。
- 用標籤記錄閘道與工作階段,不寫憑證。
- 分開路由、回應、解析及業務驗證欄位。
- 將工作總計與下游接受記錄核對。
- 分享前對每次匯出執行機密掃描。
- 為診斷檔案設定存取控制與刪除日期。
常見問題
Firefox 155 會驗證 NDJSON 綱要嗎?
不會。它只是讓受支援的 JSON Lines 文件更容易檢視。綱要驗證、必要欄位檢查及數量核對必須由資料管線完成。
是否一行代表一個頁面?
不一定。一次請求可能產生多筆記錄,一個頁面也可能依賴多次請求。應採用界線清楚的事件,並用操作編號關聯。
NDJSON 能否為重現保存原始代理憑證?
不應保存。只寫安全設定標籤,獲授權重現時再從核准的機密管理器讀取憑證。
只保留最終成功行足夠嗎?
不足。需要保存嘗試層級證據,才能量測重試、路由變化、成本與部分失敗。
合規說明
只蒐集及檢查獲授權的資料,遵守目的地條款、供應商合約、隱私要求與速率限制。診斷資料流不得保存驗證機密、個人載荷或未受控目標 URL。代理應服務於合法測試與資料營運,不得用於規避存取控制、隱藏濫用或製造虛假流量。