httpmon · Go CLI

看这条命令发了什么请求

用 httpmon 包住 curl、aws、Python 或任何支持代理的命令,实时看请求和响应——命令收到的响应原样不动。

GoMITv1.2.1local proxyHTTP / HTTPS / wss handshakeNDJSON / HAR

httpmon · 本地代理 正在捕获
$ httpmon curl https://api.github.com/users/octocat
请求 #1 GET https://api.github.com/users/octocat

Host: api.github.com · Accept: */*

响应 HTTP/1.1 200 OK

Content-Type: application/json · 245ms

{"login":"octocat","id":583231,...}
HTTPS 只在本地解密查看原始响应流继续交给命令

一条命令,一层本地观察

只配置当前这条命令

httpmon 启动本地 MITM 代理,把代理地址和临时 CA 传给一个子进程。子进程仍会收到原始响应流,终端则显示请求、响应和耗时。

  1. 01

    本地启动

    在 curl、aws、Python、Node 或其他支持代理的命令前加上 `httpmon`,系统代理不会变化。

  2. 02

    只配置子进程

    代理地址和临时 CA 只存在于这条命令的环境变量中,不会写进全局网络设置。

  3. 03

    转发并显示

    原命令照常收到响应;终端同时显示请求头、响应头、状态码、耗时和解压后的预览。

  4. 04

    按需留存

    需要复查或分享时,再导出 NDJSON、HAR 或录制文件。

包住命令后终端里有什么

包住命令后终端里有什么

01

请求和响应

在文本模式或 TUI 里查看方法、URL、请求头、响应头、状态码、耗时和解压后的内容预览。

02

原始响应流

被包装的命令仍会收到原始响应。解压只用于 httpmon 的终端预览。

03

关心的请求

命令请求很多时,用 `--filter` 按 URL 或域名筛选,只看需要排查的部分。

需要时再保留会话

需要时再保留会话

结构化记录

输出 NDJSON 交给其他命令处理,或导出 HAR 1.2 到支持检查 HTTP 请求的工具。

录制和回放

录制请求与响应对,再把已获授权的会话回放到原端点或对比环境。

wss 与录制

wss 与录制

HTTPS 与 wss 握手

支持 HTTPS,也会记录 `wss://` 的升级握手。收到 101 响应后,WebSocket 帧会在两端之间直接转发。

录制可能含敏感信息

请求头、Cookie、查询参数和响应体可能含有凭据或业务数据。请只在获授权环境采集与回放,并把 NDJSON、HAR 和录制文件按敏感日志保存。

打开仓库