在Windows上寻找类似于Fiddler的Mac的HTTP调试代理[关闭]


240

在以前的工作中,当我在Windows计算机上工作时,我使用Fiddler来查看HTTP事务和调试。

我特别希望监视正在处理的ajax站点的HTTP事务,以验证该站点是否按预期运行。重写HTTP(由Fiddler提供)是很不错的,但不是必需的。

有人可以推荐在Mac上使用类似的东西吗?


4
它已经关闭,但是仍然存在,因此需要添加:Fiddler现在在Mac OS中处于alpha状态。
boomhauer14年

1
我不知道为什么会关闭?它有113票。这不是一个关于堆栈溢出的问题。
genxgeek

请在这些评论的正上方阅读基本原理-“寻求产品,服务或学习材料建议的问题不在主题之列”
Doug Harris

在附近的Windows机器上启动Fiddler,并配置您的MAC以通过Windows机器代理,瞧!MAC上的所有内容都将在Windows上显示:)
Korayem

2
仅供参考,对于那些非常喜欢@boomhauer的评论的人:OSX的Fiddler 仍在 Alpha中,最后一次接触是在2013年7月,它需要Mono框架(因此,它基本上只是Windows版本的包装器,实际上为Cocoa进行了重构),并且该版本中有注释:“ Mac注意:Mac上的WinForms框架几乎是无法使用的bug。最好的选择是在Linux或Windows虚拟机中运行Fiddler,然后将Mac的代理设置指向该位置”。
安东尼

Answers:


130

使用Chrome浏览器并导航至chrome:// net-internals /

它允许进行详细的分析和转储。


1
真好 知道何时将其添加到chrome吗?
Doug Harris

2
不,谢谢。我曾经在Windows上与Fiddler一起工作,但后来转到Mac时,在寻找隐藏的Chrome功能时偶然发现了内部网络。
brains_at_work

5
这个工具看起来“不错”,但是您怎么能看到整个请求有效负载(即GET请求标头?)
genxgeek 2015年

AFAIK,这没有像Fiddler使用FiddlerScript,AutoResponder和断点那样提供修改传输中数据的方法。好的工具,但用途不同。
iX3

33
该工具似乎只能捕获Chrome浏览器流量。有什么方法可以使用此工具捕获特定进程的HTTP流量吗?
morpheus

71

我找到了Charles Proxy。它更接近Fiddler的功能。它不是免费的,但可能值得。


只是好奇:这里有人使用过吗?
Arjan

找到它后,我用了一两个小时。试用版有一些小屏幕和30分钟的限制,但我认为这些都不合理。我在HTTP响应中寻找特定的标头,因此能够轻松看到它们。
道格·哈里斯(

1
Charles的优点是OSX和Windows都可以使用它,因此,如果您经常来回移动它是一个很好的通用工具。
贾斯汀·欧姆

5
查尔斯(以及提琴手,也许是网络疤痕)提供的一项重要功能是能够拦截和修改请求,包括https解密。
urban_raccoons 2014年

1
我使用Charles解密Instagram,Facebook和其他移动应用程序的https请求。只需将iPhone代理指向Charles,我就能看到它们如何发送数据以及发送什么数据!
马里奥·卡瓦略

35

我已经使用mitmproxy来拦截HTTP通信。这是一个很棒的工具,您也可以将其用于调试移动设备或与此相关的任何操作系统。


爱这个!顺便说一句,对于所有脚本小子来说,如果您用浏览器中的JS之外的其他代码编写代码,那么这就是THE票。
Shane

30

我最喜欢的用于监控流量的Mac应用程序是HTTPScoop我在去年写的这篇文章中详细介绍了该命令以及在命令行中使用tcpdump 。


如果您偶然知道Wireshark(或功能较弱的Cocoa Packet Analyzer):可以将HTTPScoop与之比较吗?
Arjan

1
可可数据包分析仪也非常简单。但是,我从来没有想出如何筛选某些特定的端口或服务器的IP地址,然后看到两个请求和应答......这是很容易做到的Wireshark的。(只需键入smtp作为显示过滤器来查看使用SMTP协议的所有流量或者,tcp.port == 25让所有通信端口25,它的响应或。http and ip.addr == xxx让所有HTTP流量以及一些服务器。)
阿尔扬

1
httpscoop看起来很有希望,但不幸的是它似乎已被放弃,我无法在10.9.2上捕获本地主机流量。最新版本可追溯到2009年,该网站宣称即将推出的v2.0似乎并没有发布:/
吉恩

1
我尝试使用此应用程序,与提琴手相比,这太可怕了。我想捕获所有流量和所有端口的所有接口,而不是本地主机上的端口80。我试图通过首选项添加我想要的端口(禁用了瓢)。这对我没有帮助,因为我要监视的东西位于两个不同的接口上,例如lo / en0
KnuturO 2015年

1
链接到博客不起作用:(
Reg

19

不是您的要求,但是在Firefox中,如果要编辑和重播请求(包括更改URL和HTTP方法),则只需要Live HTTP Headers插件。

实时HTTP标头

在Firebug中,网络监控显示所有请求和响应。同样,在Safari 中,内置Web Inspector 的“ 资源”窗格也满足了我的大多数需求。(通过首选项启用Web Inspector:在菜单栏中显示“开发”菜单。)Chrome和Firefox具有类似的工具。

当事情变得更加复杂时,我启动了Wireshark数据包嗅探器。但是,与Fiddler不同,Wireshark不允许您更改数据,并且不像Fiddler 那样支持自动响应程序。

对于Wireshark,请参阅“ 超文本传输​​协议(HTTP)”以获取一些常规的HTTP捕获信息,以及“ HTTP数据包捕获”以调试Apache,以获取一些示例显示过滤器。(您可以设置捕获过滤器“ port 80”,显示所有的请求该端口,并响应该端口或者限制一些服务器使用。捕捉过滤器“ port 80 and host www.google.com”。)喜欢的:

#仅显示404:找不到页面
http.response.code == 404

#仅显示某些HTTP方法
http.request.method ==“ POST” || http.request.method ==“ PUT”

#仅显示javascript
http.content_type包含“ javascript”

请注意,Wireshark可以为您动态解压缩gzip或解压缩编码(压缩)的东西。由于大多数Web服务器将压缩它们发送到浏览器的数据,因此使事情更容易阅读。

(对于自动响应器:优秀的JS Bin上有一个简短的视频,介绍如何使用它调试Ajax请求。如果您不了解JS Bin,则请首先观看介绍视频。)


为Firebug +1 –我爱他们的网络监控工具
Josh

我试了一下,但是我无法向其他网址(在同一域中)提出新请求,也找不到方法(例如,从GET到POST)。
Purefan 2014年

@Purefan,没有更多细节,我们无济于事;它对我有用,请参阅我刚刚添加的屏幕截图。您可能遇到了mozdev.org/bugs/show_bug.cgi?id=25831
Arjan

7

除了Charles(已经提到过)之外,我还喜欢Mozilla Firefox 的HttpFox附加组件。与Charles一样,您可以在Mac和Windows上使用它。它比Charles轻巧,因为它位于浏览器中,有助于快速进行故障排除。这是HttpFox页面上的一些信息:

HttpFox监视并分析浏览器和Web服务器之间的所有传入和传出HTTP通信。

它旨在将HttpWatch或IEInspector之类的工具中已知的功能引入Firefox浏览器。

每个请求可用的信息包括:

  • 请求和响应头
  • 发送和接收Cookie
  • 查询字符串参数
  • POST参数
  • 反应体

并且,截图:

Mozilla Firefox的HttpFox插件的屏幕截图


这与Firefox的较新版本(Firedox 57和Firedex Deveolper Edition 57)不兼容
Promather

6

不是代理,但它确实有助于调试HTTP:

只需在将要打开HTTP通信的接口上开始扫描,执行通信,然后停止扫描,然后输入“ HTTP”作为过滤字符串即可。然后,您将能够检查HTTP对话的所有数据包。打开“数据包详细信息”视图后,您可以打开“ HTTP”部分,它将在数据包之间保持打开状态。

这是一个很棒的工具,不需要您更改浏览器代理。另一方面,由于已加密,因此它无法帮助HTTPS通信。(尽管它可以解密使用RSA的SSL连接


2
只是更新:Wireshark在OS X上很痛苦。它需要X11,OS 11中不再包含X11,因此最终总共要使用200MB的磁盘。
Marko Bonaci 2015年

2
只是@MarkoBonaci更新的更新,Wireshark 2.x现在可以在OSX上很好地运行,而无需X11。
0x7c0

@MarkoBonaci-您应该只使用qt安装。
arcseldon'2



2

看来免费的GlimmerBlocker可以解决部分问题。

当然,它可以阻止所有类型的内容,并在浏览器收到响应之前转换响应。但实际上它可以修改请求和响应。尽管不是真正的调试,但它也提供日志记录。因此,它可能适合基本需求

GlimmerBlocker内部运行的脚本有4种,某些对象仅针对某些脚本类型定义:

  • 全局代理:设置全局代理设置,并且可以测试例如位置名称,AirPort网络。
  • 请求修改:这可以更改请求的URL,将重定向响应发送回浏览器,或将text / html发送回浏览器。
  • 关键字扩展。[仅限Safari,AvB]
  • 转换:修改Web服务器收到的响应,然后将其发送回Safari [或设置为使用GlimmerBlocker,AvB提供的代理的任何浏览器]。

(也可以使用它在收到的响应中包含各种Greasemonkey脚本,而无需使用Greasemonkey附加组件,例如阻止Flash而不安装任何附加组件。)


GlimmerBlocker是一个有趣的工具,但与我要寻找的工具不同。我已经对原始说明进行了重新编辑,以删除重写的示例,并阐明我只是在监视流量而不是对其进行转换。
Doug Harris 2010年

2

您可以按照Parallels网站上的说明使用Parallels 轻松配置Mac版Fiddler

唯一需要注意的是,您必须手动配置网络设置以指向VM的IP地址,但这并不是一件大事。


7
我不会轻易称呼它-它需要购买并安装VM服务器和完全不同的操作系统。
詹姆斯·摩尔

我在此工具提示中有5个条目,其中只有一个是IPv4格式。我应该选哪一个?:)
Alex Sorokoletov

1
您可以使用免费的虚拟化软件(例如Oracle的VirtualBox)以及来自modern.ie的虚拟机,如果您想运行Windows操作系统(90天后需要重置),对于具备所需技能的人来说并不太高运行高级的Web调试代理
iX3 2015年

如果这个问题尚未解决 -有人应该提及Mac版Fiddler-使用Mono框架的telerik.com/download/fiddler ...
Mars Robertson

而且它在macOS中对我
不起作用

1

jMeter也可能会有所帮助;它专为测试Web服务器上的负载性能而设计,但它仍然可以满足您的需求。jMeter用Java编写,因此您可以下载将在Mac,Windows或Linux上运行的.jar文件。



1

如果您要处理通过公共Internet进行的应用程序流量或第三方API集成,则应尝试Runscope(其中,我是联合创始人,完整披露)。它捕获对任何URL的HTTP请求,为您提供一个不错的调试流视图,并使与他人共享单个请求变得容易。


0

您也可以尝试APIKitchen。它可以帮助您调试和测试HTTP API以及所有常规请求。它还具有脱机版本,可在内部网络中进行测试。无需安装。

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.