HTTP 头解析器 — 在线将 HTTP 头解析为 JSON
将原始 HTTP 头解析为结构化 JSON,专为 API 调试设计 —— 提取请求行、header 数量与所有键值对,完全在浏览器中运行。
手工解析 HTTP header 既繁琐又容易出错。格式确实简单 —— Name: Value,每行一条 —— 但当你从服务器响应里拿到 20 个 header,需要看 Cache-Control 写了什么、是否设置了正确的 Access-Control-Allow-Origin、或某个自定义 X-Request-Id header 是否存在,滚动一长串文本就是浪费时间。HTTP 头解析器把原始 header 块转成结构化 JSON 对象,可以搜索、复制、直接引用。每个 header 变成 JSON 中的一个 key;请求行(如果存在)作为单独字段捕获;header 总数也一并给出,方便确认没有遗漏。
解析器处理三种最常见的 header 格式:请求行(GET /api/users HTTP/1.1)、响应状态行(HTTP/1.1 200 OK)、或根本没有首行的纯裸 header。它保留 header 名的精确大小写 —— 不做归一化,不转小写 —— 你看到的就是实际发送的内容。这对调试很关键,因为某些服务端框架和中间件对大小写敏感的方式往往出人意料。输出是一份干净、带缩进、可读的 JSON 文档,可以直接粘贴到代码评审、事故报告或文档页面里。
驱动本工具流量的核心场景是这样的:开发者从同事的 Slack 消息里复制一条 curl 命令,跑一遍拿到响应,需要检查 header。终端输出是换行的,header 与 body 交错在一起,要找某个特定 header 值就得滚动和眯眼。把 header 块粘进解析器,得到的是一份可搜索的 JSON 文档,每个 header 占一行。替代方案 —— 写个一次性脚本解析 curl -v 输出 —— 恰恰是专用工具要消除的那种摩擦。每一个 header 字节都留在你的浏览器里,没有任何东西被传到服务器。
使用方法
粘贴原始 HTTP 头
从终端、浏览器 DevTools 或服务器日志粘贴原始的请求或响应头。第一行(GET/POST/HTTP)会被当作请求行处理。每个 `Key: Value` 行被解析成结构化 JSON 对象,header 名作为 key,值作为字符串。
查看输出
输出会显示请求行(如果检测到)、每个 header 作为键值对、以及 header 总数。把 JSON 复制下来用于文档、调试,或集成到监控仪表盘与告警系统。
复制或下载 JSON
把解析后的 JSON 复制到剪贴板,或下载为文件。输出按 2 空格缩进格式化以便阅读 —— 可以直接粘贴到代码评审评论、诊断工单或 API 文档页。
常见问题
header 应该是什么格式?
标准 HTTP/1.x header 格式 —— 每行一个 header,每行形如 `Name: Value`。第一行可以是请求行(例如 `GET /api/users HTTP/1.1`)或响应状态行(例如 `HTTP/1.1 200 OK`)。空行会被忽略。解析器不强制要求请求行 —— 纯 header 块也接受。
它会校验 header 吗?
本工具只做语法解析 —— 不检查 header 名是否符合 RFC 9110 定义的合法 HTTP header 名,也不检查值是否符合对应字段类型的 RFC 规范。它只提取输入中存在的内容。如需语义校验,请用专门的 HTTP 库或代理工具。
能解析多行 header 值吗?
不能。多行(折行)的 header 值使用已废弃的折行语法(续行以空白开头),按 RFC 7230 在 HTTP/1.1 中已弃用,并在 HTTP/2 与 HTTP/3 中移除。解析器独立处理每一行。
能正确解析 Set-Cookie 头吗?
Set-Cookie header 中可以包含分号和逗号,它们在 HTTP 中是结构性的,但对按行解析的解析器来说有歧义。解析器捕获完整的 value 字符串 —— 不会拆分单个 cookie 属性。如需分解各个指令,请对 cookie 值使用查询字符串解析器。
这与 HAR to cURL 有什么区别?
HAR to cURL 把完整的 HAR 存档(含 timings 的请求/响应对)转换为可执行代码。HTTP 头解析器只接收原始 header 文本并转成结构化 JSON。两者用途相邻:HAR 用于重放与代码生成,原始 header 解析用于检查与文档。
限制说明
- 不做 HTTP 语义校验本工具不校验 header 在 HTTP 语义上是否正确(例如 CORS 必需的 header、HTTP/1.1 缺失的 Host 头、无效的组合)。如需语义检查,请用完整的 HTTP 库或 Charles、mitmproxy 之类的代理。
- 不拆分 cookieSet-Cookie 与 Cookie 头作为单个字符串返回。如需拆分各个 cookie 属性或值,请把字符串送入 cookie 解析器,或使用查询字符串解析器。
- 不解析 HTTP/2 或 HTTP/3 帧HTTP/2 使用 HPACK 压缩头的二进制帧。HTTP/3 使用 QPACK。本工具只处理 HTTP/1.x header 在终端输出和 DevTools 中出现的文本形式。
平台说明
- macOS
- 用 `curl -v https://api.example.com 2>&1 | grep '^[<>]'` 提取请求与响应 header,再粘贴到这里。`-v` 标志把完整 header 交换输出到 stderr。
- Windows
- PowerShell 的 `Invoke-WebRequest` 与 `Invoke-RestMethod` 通过 `$response.Headers` 暴露响应头。浏览器 DevTools(F12 → Network → Headers 标签)是最方便的来源。复制原始 header 并粘贴到解析器。
- Linux
- `curl -v`、`wget --debug` 或 `tcpdump -A` 都能拿到原始 header。对实时流量,`ngrep -W byline port 80` 在线捕获 HTTP header。浏览器工具对输入文本进行后处理。
- Web
- 完全在浏览器中运行。header 数据不会发送到服务器。适合解析内部 API 响应、第三方 webhook 负载、认证 token,不暴露给任何在线服务。