Wireshark vs Firebug vs Fiddler – 优点和缺点?

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

从本地主机传输数据…

但事情是我看不到任何来自Firebug的networking面板的stream量,而浏览器永远停留在同一个舞台上。

我正在考虑debugging这个应用程序的方法,但是我看不到源代码或其编译的Java / C ++组件,因此我认为HTTPnetworking级别的诊断是一个好的开始。

我在Fiddler和Wireshark方面没有什么经验,只是想知道他们会在HTTPnetworking级别获得更好的反馈/统计吗? 我听说Wireshark是先进的,但可能会引入大量的stream量,所以系统pipe理员不太喜欢它。 在这个时候,我认为Firebug并没有真正向我展示足够的信息。

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

Wireshark,Firebug,Fiddler都做类似的事情 – 捕捉networkingstream量。

  • Wireshark捕获任何types的networking数据包。 它可以捕获TCP / IP下的包详细信息(Http在顶部)。 它确实有filter来减less它捕获的噪音。

  • Firebug跟踪浏览器页面所做的每个请求,并捕获相关头文件和请求的每个阶段( DNS,接收,发送,… )所用的时间。

  • 提琴手作为一个HTTP / HTTPS代理。 它捕获计算机制作的每个http请求,并logging与之相关的所有内容。 允许将后期variables转换为表格forms并编辑/重放请求。 默认情况下,它不会在IE中捕获本地主机stream量,请参阅常见问题了解变通办法。

WireShark的好处在于,它可能会向您显示HTTP协议以下级别的错误。 提琴手会在HTTP协议中显示错误。

如果您认为问题出在浏览器发出的HTTP请求中,或者您只是想了解更多有关服务器响应的信息,或者需要多长时间才能响应,Fiddler应该这样做。

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

以上都不是。 使用Charles Proxy 。 这是我见过的最好的networking/请求信息收集器。 您可以查看和编辑所有传出的请求,并根据响应的types以多种forms查看这些请求的响应。 它的许可证花费50美元,但你可以下载试用版,看看你的想法。

如果你在Windows上,那么我会留在小提琴手。

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

任何httpdebugging器都无法提供fiddler的“自定义规则”function。 编写代码来dynamic处理http请求和响应的能力对我和我在web开发中所做的工作是无价的。

有这么多的function提琴手,查尔斯没有,可能永远不会有。 提琴手是光明年前。

如果您正在开发一个使用AMF传输数据的应用程序(在我经常使用的一组特定的GIS Web API中相当常见),Fiddler目前不提供AMF解码器,这将允许您轻松查看二进制数据,可读格式。 Charles提供了这个function。

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

我使用Charles Proxy和Fiddler来进行HTTP / HTTPS级别的debugging。

Charles Proxy的优点:

  1. 更好地处理HTTPS(你会得到一个查询证书,你可以把它放在“可信任的权威”列表中)
  2. 具有更多的function,如加载/保存会话(特别是在debugging多个页面时很有用),镜像网站(用于caching资源以及更快的debugging)等。
  3. 正如jburgess所提到的,处理AMF。
  4. 在树结构中显示JSON,XML和其他types的响应,使其更容易阅读。 在图像响应中显示图像而不是二进制数据。

查尔斯代理的缺点:

  1. 成本:-)