HTTP 消息解析器
解析和检查 HTTP/1.x 和 HTTP/2 消息,包括请求、响应和 curl verbose 输出。以结构化格式查看头部、状态码和正文。支持 JSON、HTML 和 XML 内容的自动正文类型检测。
规范
常见用例
- 调试来自浏览器网络标签的 HTTP 请求
- 分析 API 响应
- 解析 curl -v 输出进行故障排除
- 检查 Webhook 载荷
- 审查 HTTP 头部进行安全分析
功能
- 解析 HTTP/1.x 和 HTTP/2 请求和响应
- 解析 curl -v verbose 输出格式
- 显示带颜色编码分类的状态码(2xx、3xx、4xx、5xx)
- 为 curl 输出分别显示请求和响应头部
- 自动正文内容类型检测(JSON、HTML、XML)
- 动态正文工具渲染(懒加载 JSONTool、HTMLTool 等用于正文内容)
- 展开/折叠正文部分
- 复制头部或正文到剪贴板
示例
HTTP GET 请求
试试看 →一个带头部的简单 GET 请求
GET /api/users HTTP/1.1
Host: example.com
Accept: application/json
Authorization: Bearer token123HTTP 响应
试试看 →一个带 JSON 正文的 200 OK 响应
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 27
{"name":"John","age":30}curl -v 输出
试试看 →包含请求和响应的 curl verbose 输出
* Trying 93.184.216.34:443...
* Connected to example.com
> GET /api HTTP/1.1
> Host: example.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
<
{"status":"ok"}提示
- 直接粘贴 curl -v 输出——请求和响应头部会被分别解析。
- 点击"解码为 JSON/HTML/XML"将正文链式转到相应的解码器。
- 状态码有颜色编码:绿色(2xx)、蓝色(3xx)、黄色(4xx)、红色(5xx)。
理解 HTTP 消息解析器
HTTP 消息是超文本传输协议中通信的基本单元。Web 客户端与服务器之间的每次交互都由一个请求消息和一个响应消息组成。理解它们的结构对于调试 API、分析网络流量和构建 Web 服务至关重要。
HTTP 请求以请求行开始,包含方法(GET、POST、PUT、DELETE)、目标路径和协议版本。之后是头部字段(键值对)、一个空行和可选的正文。方法表示预期的操作:GET 获取数据,POST 提交数据,PUT 替换资源,DELETE 删除资源,PATCH 部分更新资源。
HTTP 响应以状态行开始,包含协议版本、三位数状态码和原因短语。状态码按类别分组:2xx 表示成功(200 OK、201 Created),3xx 表示重定向(301 Moved、304 Not Modified),4xx 表示客户端错误(400 Bad Request、401 Unauthorized、404 Not Found),5xx 表示服务器错误(500 Internal Server Error、502 Bad Gateway)。
curl 命令行工具使用 -v(verbose)标志输出请求和响应,使用独特的格式:> 表示发送的数据,< 表示接收的数据。这种输出格式是开发者接触原始 HTTP 消息最常见的方式之一,使 curl -v 解析成为必备的调试能力。
HTTP/1.1 是基于文本的,每次 TCP 连接发送一个请求(管道化存在但支持不佳)。HTTP/2 是二进制协议,在单个连接上多路复用多个请求,支持服务器推送,并使用 HPACK 压缩头部。HTTP/2 显著降低了现代网站的延迟。语义——方法、状态码和头部——在两个版本中保持不变;只是传输格式不同。
在 curl -v 输出中,以 > 开头的行是发送到服务器的数据(请求),以 < 开头的行是从服务器接收的数据(响应),以 * 开头的行是 curl 关于连接详情和 TLS 协商的信息消息。仅包含 > 或 < 的空行将头部与正文分隔。此工具自动解析所有三个部分。
状态码遵循定义明确的数字方案:1xx 码为信息性(100 Continue),2xx 表示成功(200 OK、201 Created、204 No Content),3xx 表示重定向(301 Permanent、302 Found、304 Not Modified),4xx 表示客户端错误(400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、429 Too Many Requests),5xx 涵盖服务器错误(500 Internal Error、502 Bad Gateway、503 Service Unavailable)。