⭐ 觉得好用?收藏备用,下次直接打开
🌐
拖拽 HAR 文件到此处
支持 .har · .json(Chrome / Firefox / Safari DevTools 导出的 HTTP Archive)
🔒 文件仅在浏览器本地解析;HAR 通常含 Cookie / Authorization 等敏感信息,不上传任何服务器

HAR 文件分析 把 Chrome / Firefox / Safari DevTools 导出的 .har 文件直接拖进浏览器,立刻看到所有请求的列表、状态分布、耗时排行、Header / 请求体 / 响应体详情,并支持脱敏导出——剥掉 Authorization / Cookie / 请求体后再分享给同事或客服。整个工具纯前端运行,HAR 文件不出本地

为什么浏览器里看 HAR

HAR(HTTP Archive)就是一份 JSON:log.entries[] 数组里每条是一次请求。本工具直接 JSON.parse 然后排版渲染,不需要任何后端,不需要安装任何扩展。导出 HAR 是浏览器内置的功能,但 DevTools 里看 HAR 体验并不好——已经发生过的请求按时间排,没有跨字段搜索、没法持久化筛选条件、想分享给同事还得手动删敏感字段。本工具就是为这个场景设计的。

隐私设计

HAR 文件常常带着完整的鉴权状态:登录后的 Cookie、Authorization Bearer token、表单 POST 体里的密码、响应里的 PII。任何把 HAR 上传到第三方分析服务的工具都是高危操作——一份生产环境 HAR 等于一段时间内的会话凭证。本工具:

  1. 不上传——HAR 永远只在你的浏览器里
  2. 脱敏导出——一键剥掉敏感 Header 与请求/响应体,剩下的元数据(URL、状态、耗时、Header 名)足以排障
  3. 断网可用——首次访问后离线也能继续分析

一屏完成

加载 HAR 后页面分四块:顶部信息条(文件名 + 请求总数 + 来源浏览器 + 文件大小 + 脱敏导出 / 关闭)、统计卡片(总请求 / 总流量 / 总耗时 / 最慢请求 / 4xx 数 / 5xx 数)、过滤栏(搜索 + 状态分组 chip + 类型下拉 + 命中数)、请求表(# / 方法 / URL / 状态 / 类型 / 大小 / 耗时条)。点任意请求弹出详情侧栏,七个 tab:概览 / 请求头 / 响应头 / 请求体 / 响应体 / Cookies / Timing。Esc 或点击遮罩关闭,跟原生 DevTools 操作差不多。

配套工具

只想看一段 JSON 用 JSON 工具(高亮 + JSONPath 过滤);想跑数据分析用 DuckDB SQL 工作台Parquet 预览;要美化 SQL / JS 用 代码格式化。整条「拿到一份数据 → 先看一眼 → 做分析 → 给结果」的链路都在 365 工具箱里,不需要离开。

📍使用场景

  • 客户/同事甩了一个 .har 来排障「为啥这页面打不开」「接口报 500 看一下」——把对方导出的 HAR 拖进来,秒看哪个请求失败、哪个慢、Header 有没有装错鉴权。
  • 排查首屏慢找出阻塞首屏的几个最慢请求(瀑布 + 排序),看是 DNS 慢、SSL 握手慢、还是后端 wait 长,对症下药。
  • 4xx / 5xx 巡检一键过滤所有非 2xx 请求,定位 401/403/404/500,配合详情面板看完整 Header 和响应体。
  • 把 HAR 安全地分享给同事/客服HAR 里默认带 Authorization / Cookie / 请求体(可能含密码、token、订单详情),「脱敏导出」一键剥掉敏感字段后再发出去。
  • 接口对比与回归同一个页面在不同环境下导出 HAR,对比请求数、状态码、耗时,定位回归。

常见问题

HAR 文件怎么导出?

Chrome / Edge:F12 打开 DevTools → Network → 任意请求右键 → Save all as HAR with content(含响应体)或 HAR (without content)。Firefox:DevTools → 网络 → 右上角齿轮 → 「保存所有为 HAR」。Safari:开发者菜单 → Web 检查器 → 网络 → 导出。导出前别忘了勾选 Preserve log(保留日志),否则跳转就清空了。

文件多大能跑?

100-300 MB 以内比较舒服。HAR 是 JSON,浏览器里整个 JSON.parse 一次性加载,内存占用约 2-3 倍文件大小。响应体 base64 编码后体积膨胀显著,超过 500 MB 的 HAR 建议先用 jq 过滤再导入。表格用 3000 条上限渲染,超出后用搜索/筛选缩小范围即可。

「脱敏导出」具体抹掉了哪些字段?

敏感 Header 全部替换成 <redacted>Authorization / Cookie / Set-Cookie / Proxy-Authorization / X-API-Key / X-Auth-Token / X-CSRF-Token / X-Session-Token / X-Access-Token / X-Amz-Security-Token。请求 / 响应 cookies 数组清空。请求体 postData.text 与响应体 content.text 整体替换为 <redacted>_initiator 调用栈(含源文件路径)一并删掉。其它字段(URL、状态、耗时、headers 列表名等)原样保留,足以看出"哪条请求慢、错在哪",但不会泄漏凭证。

工具会不会上传我的 HAR?

不会。整个工具是一个静态页面,文件用 File.text() 读到内存里 JSON.parse没有任何网络请求。即使首次加载完成,断网也能继续用。HAR 文件常含 Cookie / Authorization / 个人订单数据,所以本工具的核心定位就是「本地解析、不上传、并提供脱敏导出方便分享」。

为什么响应体显示「无响应体」?

导出 HAR 时 Chrome 默认有两个选项:Save all as HAR with content 会保留响应体(文件大),HAR (without content) 不带响应体(文件小)。如果你拿到的是后者,工具就只能显示请求/状态/耗时/Header,看不到响应体内容——回去重新用「with content」导出。Firefox 默认保留响应体;Safari 取决于具体版本。

timing 里的 wait / receive / blocked 分别是什么?

Blocked:请求被排队/被代理阻塞的时间(Chrome 同源连接数上限是 6)。DNS:域名解析。Connect:TCP 三次握手。SSL:HTTPS 握手(含 Connect 的一段,HAR 规范里 ssl 已包含在 connect 内)。Send:发送请求字节。Wait:从最后一个字节发出到第一个响应字节回来——这段就是「TTFB」(time to first byte),多数情况下是后端处理耗时。Receive:下载响应体的时间。排查慢请求时先看 wait(后端慢)还是 receive(响应体大/带宽差)。

不同浏览器导出的 HAR 有什么差别?

HAR 是 W3C 草案标准,核心字段所有浏览器都兼容request/response/timings/cookies/content。差别在扩展字段:Chrome 加了 _resourceType(document / xhr / script…)和 _initiator(调用栈);Firefox 没有 _resourceType,本工具会回退到 MIME 类型推断。所以分类列在 Firefox HAR 里可能不如 Chrome 精准,但请求列表/耗时/Header 完全一致。