97

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

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

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

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

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

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

4

7 回答 7

85

Wireshark, Firebug, Fiddler all do similar things - capture network traffic.

  • Wireshark captures any kind of network packet. It can capture packet details below TCP/IP (HTTP is at the top). It does have filters to reduce the noise it captures.

  • Firebug tracks each request the browser page makes and captures the associated headers and the time taken for each stage of the request (DNS, receiving, sending, ...).

  • Fiddler works as an HTTP/HTTPS proxy. It captures every HTTP request the computer makes and records everything associated with it. It does allow things like converting post variables to a table form and editing/replaying requests. It doesn't, by default, capture localhost traffic in IE, see the FAQ for the workaround.

于 2010-11-24T03:37:59.940 回答
44

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

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

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

于 2010-11-24T03:09:37.327 回答
34

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

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

于 2010-11-24T03:09:10.100 回答
15

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

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

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

于 2013-03-25T20:29:35.807 回答
5

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

查尔斯代理的优点:

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

查尔斯代理的缺点:

  1. 成本 :-)
于 2012-03-19T05:52:11.453 回答
4

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

于 2011-09-12T13:31:07.083 回答
3

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

于 2014-05-08T08:38:33.503 回答