Wireshark vs Firebug vs Fiddler - 利弊? [关闭]

Posted

技术标签:

【中文标题】Wireshark vs Firebug vs Fiddler - 利弊? [关闭]【英文标题】:Wireshark vs Firebug vs Fiddler - pros and cons? [closed] 【发布时间】:2011-05-14 20:51:39 【问题描述】:

最近,我遇到了一个 CGI 应用程序没有响应的问题。症状是 Firefox 显示:

正在从本地主机传输数据...

但问题是我看不到来自 Firebug 的网络面板的任何流量,并且浏览器永远停留在同一阶段。

我正在考虑调试此应用程序的方法,但我看不到源代码或任何已编译的 Java/C++ 组件,因此我认为 HTTP 网络级别的诊断是一个好的开始。

我在 Fiddler 和 Wireshark 方面的经验很少,只是想知道他们会在 HTTP 网络级别获得更好的反馈/统计信息吗?我听说 Wireshark 很先进,但可能会引入大量流量,因此系统管理员不太喜欢它。目前我认为 Firebug 并没有真正向我展示足够的信息。

我需要收集信息,以便我可以转发给客户作为证据。

【问题讨论】:

我不会推荐 Charles,因为只有一位开发人员在使用它。如果他停止使用应用程序或被公共汽车撞到怎么办?此外,看起来他没有回应支持请求。我会把我的 50 美元花在别的地方。至于Fiddler,支持稍好一些,但他们可以慢慢来,因为它是一个免费工具。我还剩下什么?可能是wireshark或mitm代理。 @testerjoe2 mitm 代理速度慢如 f*ck,不如 fiddler。 【参考方案1】:

Wireshark、Firebug、Fiddler 都做类似的事情——捕获网络流量。

Wireshark 可捕获任何类型的网络数据包。它可以捕获低于 TCP/IP 的数据包详细信息(HTTP 在顶部)。它确实有过滤器来减少它捕获的噪音。

Firebug 跟踪浏览器页面发出的每个请求,并捕获相关的标头以及请求每个阶段(DNS、接收、发送……)所用的时间。

Fiddler 用作 HTTP/HTTPS 代理。它捕获计算机发出的每个 HTTP 请求并记录与之相关的所有内容。它确实允许将帖子变量转换为表格形式和编辑/重播请求。 默认情况下,它不会在 IE 中捕获本地主机流量,请参阅常见问题解答以了解解决方法。

【讨论】:

【参考方案2】:

WireShark 的好处是它可能会显示低于 HTTP 协议级别的错误。 Fiddler 将向您显示 HTTP 协议中的错误。

如果您认为问题出在浏览器发出的 HTTP 请求中,或者您只是在寻找有关服务器响应内容或响应时间的更多信息,Fiddler 应该这样做。

如果您怀疑您的浏览器和服务器(或低于此的其他层)使用的 TCP/IP 协议可能有问题,请使用 WireShark。

【讨论】:

确实,Wireshark 可以发现代理和 nat 服务器问题,它也可以在您连接的客户端和服务器上使用。【参考方案3】:

以上都不是,如果您使用的是 Mac。使用Charles Proxy。这是我遇到过的最好的网络/请求信息收集器。您可以查看和编辑所有传出请求,并以多种形式查看这些请求的响应,具体取决于响应的类型。许可证费用为 50 美元,但您可以下载试用版并看看您的想法。

如果你在 Windows 上,那么我会留在 Fiddler。

【讨论】:

您能否详细说明 Charles 与 Fiddler 之类的东西有何不同?你上面提到的似乎很像提琴手。我目前使用 fiddler,但如果我能从中得到更多东西,我会很高兴使用更好的东西。 Charles 和 Fiddler 在架构上非常相似。 Charles 在 Mac 上运行;提琴手不会。 Charles 是用 Java 编写的,而且要花钱。 Fiddler 是用 C# 编写的,免费且可在 .NET 中轻松扩展。 它实际上可以在 Windows、Mac OSX 和 Linux 上运行 为什么比wireshark好? 我在一天内回答了 Fiddler 的 Google 群组中的几乎所有问题。但这里不适合讨论这个问题。【参考方案4】:

每次与查尔斯相比,提琴手都是赢家。

fiddler 的“自定义规则”功能在任何 http 调试器中都是无与伦比的。编写代码以即时操作 http 请求和响应的能力对我和我在 Web 开发中所做的工作来说是无价的。

fiddler 有很多功能是 charles 没有的,而且很可能永远不会有。 Fiddler 遥遥领先。

【讨论】:

除非你不在windows下工作时fiddler没用。您也可以在两者之间放置一个代理,然后您可以自己做(在 C# 中)。例如 mentalis.org/soft/projects/proxy 。不需要提琴手。我家里已经没有 Windows 系统了——只有基于 ARM 的 Linux。我对此感到非常高兴。 您提到了 fiddler 的许多 charles 没有的功能。这些功能是什么?【参考方案5】:

我同时使用 Charles Proxy 和 Fiddler 进行 HTTP/HTTPS 级别的调试。

Charles Proxy 的优点:

    更好地处理 HTTPS(您将获得一个查尔斯证书,您将其放入“受信任的机构”列表中) 具有更多功能,例如加载/保存会话(尤其是在调试多个页面时很有用)、镜像网站(在缓存资产时很有用,因此调试速度更快)等。 如 jburgess 所述,处理 AMF。 以树形结构显示 JSON、XML 和其他类型的响应,使其更易于阅读。以图像响应而不是二进制数据显示图像。

Charles Proxy 的缺点:

    成本:-)

【讨论】:

Fiddler 提供比 Charles 更简单的 HTTPS 信任,提供更丰富的 Save/Load 集,并使用树形结构显示 JSON/XML 和其他格式。它是免费软件,并且有可用的 AMF 检查器,虽然我没有使用它们。 @EricLaw:是的,但是你的“免费软件”(受美国出口限制 - 也就是不安全的密码术)不能在 Linux(我的 ARM 处理器 Chromebook Linux with Debian)上运行。【参考方案6】:

如果您正在开发使用 AMF 传输数据的应用程序(在我经常使用的一组特定 GIS web APIs 中相当常见),Fiddler 目前不提供 AMF 解码器,让您可以轻松查看二进制文件易于阅读的格式的数据。 Charles 提供了这个功能。

【讨论】:

【参考方案7】:

为补充列表,请注意http://mitmproxy.org/

【讨论】:

什么让这个选项值得考虑? @JonofAllTrades 这从命令行运行。每个替代方案都提供了不同的实现,因此在这种情况下,多样性确实是有目的的。 Maxim - Mitm 是一个基于命令行的工具。对于像我这样的用户来说,缺少 GUI 是个问题。您能告诉我们何时使用命令行工具以及何时使用 gui 吗? 当您通过 SSH 连接到服务器并且需要代理时,也许 mitmproxy 会是一个救命稻草(除非您准备好拥有一个带有 GUI 的单独环境来代理。)跨度> 有一个 mitmproxy 的 UI,docs.mitmproxy.org/stable/tools-mitmweb

以上是关于Wireshark vs Firebug vs Fiddler - 利弊? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

tcpdump VS tshark用法(转)

使用 C# vs F# 或 F# vs C# 有啥好处? [关闭]

VS写代码注释内容怎么对齐

我的vs2008英文版不能调试JS了,请高手赐教,实现调试JS的过程,英文版。。。如何设置?

VS删除临时文件

VS2013安装老是失败