Fiddler 4.6+ 支持 WebSocket 抓包,需启用 HTTPS CONNECT 捕获、流量捕获及正确代理设置;握手后在 WebSocket 标签页可查看解掩码的文本/二进制帧及控制帧。
WebSocket 是 HTML5 提供的全双工通信协议,其数据帧结构与 HTTP 不同,Fiddler 默认不直接解析 WebSocket 数据帧内容(尤其是二进制帧或掩码后的 payload),但可通过配置和插件实现有效抓包与分析。
启用 Fiddler 对 WebSocket 的捕获支持
Fiddler 4.6+ 版本默认支持 WebSocket 流量捕获,但需确认以下设置已开启:
菜单栏勾选
Tools → Options → HTTPS → Capture HTTPS CONNECTs
(即使 WebSocket 基于 wss://,此选项影响隧道建立)
确保
Tools → Options → General → Capture Traffic
处于启用状态
在
Tools → Options → Connections
中,确认监听端口为默认 8888,且“Allow remote computers to connect”按需勾选
浏览器代理需指向
(Fiddler 默认监听地址)
识别并打开 WebSocket 会话
启动 Fiddler 后,在 Web 页面建立 WebSocket 连接(如
),Fiddler 会以
CONNECT
请求形式记录握手过程:
查找类型为
CONNECT
、Host 为 WebSocket 服务器域名、Protocol 为
的会话
双击该会话 → 切换到
WebSocket
标签页(Fiddler 5 及以上显示为 “WebSocket Frames”)
若未看到该标签,请检查 Fiddler 版本是否 ≥4.6,或尝试重启 Fiddler + 浏览器
查看与解码 WebSocket 数据帧
Fiddler 的 WebSocket 标签页将自动解析帧头,并区分文本帧(Text)、二进制帧(Binary)、Ping/Pong/Close 等控制帧:
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
立即学习
“
前端免费学习笔记(深入)
”;
文本帧(Opcode=1)
:Payload 显示为 UTF-8 字符串,可直接阅读(如 JSON 消息)
二进制帧(Opcode=2)
:默认以十六进制(Hex)显示;点击右上角
“View as…” → “String”
尝试转为可读文本(仅当内容为文本编码时有效)
注意掩码(Mask)字段
:客户端发往服务端的帧必含 Mask(1字节),Fiddler 已自动解掩码,无需手动处理;服务端发往客户端的帧无 Mask,Fiddler 直接显示原始 payload
每帧显示
Direction(C→S 或 S→C)、Opcode、Length、Time
,便于定位异常帧或延迟问题
常见问题与应对建议
若无法看到 WebSocket Frames 标签或数据为空,可尝试以下操作:
关闭浏览器“QUIC 协议”(Chrome 地址栏输入
→ 设为 Disabled),避免 UDP 隧道绕过 Fiddler
使用 FiddlerScript 自定义逻辑:在
Rules → Customize Rules
中,添加
日志输出 WebSocket Upgrade 响应头,辅助验证握手是否成功
对加密的 wss 流量,确保已安装 Fiddler Root Certificate 并启用 HTTPS 解密(
Tools → Options → HTTPS → Decrypt HTTPS traffic
)
若仍失败,可改用浏览器原生开发者工具(Network → Filter 输入 “ws”)作辅助验证,再比对 Fiddler 行为
127.0.0.1:8888new WebSocket("wss://echo.websocket.org")websocketchrome://flags/#enable-quicOnBeforeResponse