Wireshark vs Firebug vs Fiddler-优缺点?[关闭]


90

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

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

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

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

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

我需要收集信息,然后才能将其转发给客户作为证据。


3
我不推荐Charles,因为只有一位开发人员在从事此工作。如果他停止使用该应用程序或被公交车撞了怎么办?而且,看起来他没有回应支持请求。我会花50美元在其他地方。至于Fiddler,支持稍好一些,但他们可以花一些时间,因为它是免费工具。我还剩下什么?可能是wireshark或mitm代理。
MasterJoe'2

1
@ testerjoe2 mitm代理的速度和f * ck一样慢,不如提琴手那么好。
baburao

Answers:


80

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

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

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

  • Fiddler用作HTTP / HTTPS代理。它捕获计算机发出的每个HTTP请求并记录与之关联的所有内容。它确实允许将发布变量转换为表格形式以及编辑/重放请求之类的事情。 默认情况下,它不会捕获IE中的localhost流量,有关变通办法,请参阅FAQ。


39

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

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

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


2
实际上,Wireshark可以发现代理服务器和nat服务器问题,也可以在您与之建立连接的客户端上使用它,也可以在服务器上使用它。
Glenner003 2014年

33

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

如果您使用Windows,那我就留在Fiddler那里。


15
您能否详细说明Charles与Fiddler之类的区别?您上面提到的内容很像提琴手。我目前使用提琴手,但如果我能从中得到更多的东西,我会很乐意使用更好的东西。
Jagmag

27
Charles和Fiddler在架构上非常相似。Charles在Mac上运行;提琴手不会。Charles是用Java编写的,要花钱。Fiddler用C#编写,是免费的,并且可以在.NET中轻松扩展。
EricLaw

7
它实际上可以在Windows,Mac OSX和Linux上运行
Casebash 2012年

11
为什么它比wireshark好?
Goles

3
我一天之内就能回答Fiddler的Google网上论坛中的几乎所有问题。但这不是聊天的合适场所。
EricLaw '17

15

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

Fiddler的“自定义规则”功能在任何http调试器中都是无与伦比的。即时编写代码以处理HTTP请求和响应的能力对我以及我在Web开发中所做的工作都非常宝贵。

提琴手有很多功能,查理只是没有,而且很可能永远不会拥有。提琴手是光年。


1
除了当您不在Windows下工作时,提琴手没有用。您也可以在两者之间放置一个代理,然后您可以自己做(在C#中)。例如mentalis.org/soft/projects/proxy。不需要提琴手。我在家不再有Windows系统,只有基于ARM的Linuces。我对此感到非常高兴。
Stefan Steiger's

您提到了查尔斯没有的提琴手的许多功能。这些功能是什么?
MasterJoe

4

如果您正在开发使用AMF传输数据的应用程序(在我经常使用的一组特定的GIS Web API中非常常见),Fiddler当前不提供AMF解码器,该解码器可让您轻松地查看二进制数据,可读格式。Charles提供了此功能。


4

我将Charles Proxy和Fiddler都用于HTTP / HTTPS级别的调试。

Charles Proxy的优点:

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

Charles Proxy的缺点:

  1. 费用:-)

9
与Charles相比,Fiddler提供了更简单的HTTPS信任,提供了更丰富的保存/加载集,并使用树结构显示JSON / XML和其他格式。它是免费软件,并且有AMF检查器可用,尽管我没有使用过它们。
EricLaw

1
@EricLaw:是的,但是您的“免费软件”(受美国出口限制-又名不安全的加密法)无法在Linux(我的带Debian的ARM处理器Chromebook Linux)上运行。
Stefan Steiger's

3

为了补充清单,还请注意http://mitmproxy.org/


什么使该选项值得考虑?

1
@JonofAllTrades这从命令行运行。每个替代方案都提供了不同的实现方式,因此在这种情况下的多样性确实可以达到目的。
Maxim Veksler 2014年

Maxim-Mitm是基于命令行的工具。缺少GUI对于像我这样的用户来说是一个问题。您能告诉我们何时使用命令行工具以及何时使用gui吗?
MasterJoe'2

当您通过SSH进入服务器并需要代理时,mitmproxy可能会节省很多生命(除非您准备好使用GUI进行代理的独立环境。)
arithma

有一个用于mitmproxy的UI,docs.mitmproxy.org
stable /
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.