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

我特别希望监视ajax的HTTP事务。我正在努力验证该站点是否正在执行我期望的工作。重写HTTP(由Fiddler提供)是一种不错的方法,但不是必需的。

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

评论

它已经关闭,但是仍然存在,因此需要添加:Fiddler现在在Mac OS的Alpha中。

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

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

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

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

#1 楼

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

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

评论


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

–道格·哈里斯(Doug Harris)
2011-11-28 15:54

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

–brains_at_work
2011-12-9 13:11



这个工具看起来“不错”,但是您如何查看整个请求有效负载(即GET请求标头?)

–genxgeek
2015年5月20日下午5:25

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

–雅各布
15年5月20日在17:20

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

–吗啡
16年1月19日在22:58



#2 楼

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

评论


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

– Arjan
09年9月18日在11:07

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

–道格·哈里斯(Doug Harris)
09年9月18日在18:11

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

–贾斯汀·欧姆斯(Justin Ohms)
13年5月2日在23:20

查尔斯(以及小提琴手,也许是webscarab)提供的一项重要功能是能够拦截和修改请求,包括https解密。

–urban_raccoons
2014年8月9日在18:36

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

–马里奥·卡瓦略(MárioCarvalho)
2015年5月26日0:11



#3 楼

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

评论


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

– Shane
18年6月22日在20:01

注意:需要Xcode 11.1

–狮子座
19年11月27日在11:38

#4 楼

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

评论


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

– Arjan
09年9月18日在11:09

可可数据包分析仪也非常简单。但是,我从来没有想过如何过滤某些特定的端口或服务器IP地址,然后查看请求和答复……在Wireshark中很容易做到。 (只需键入smtp作为显示过滤器,即可查看所有使用SMTP协议的流量。或者tcp.port == 25将所有流量获取到端口25及其响应。或者http和ip.addr == xxx以获取所有HTTP流量。与某些服务器之间)。

– Arjan
09年9月19日在8:24

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

–吉恩
2014年3月26日上午10:24

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

– KnuturO
2015年11月25日16:06

链接到博客不起作用:(

–Reg
17-10-18在14:39



#5 楼

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



在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”。)类似:

# Show only 404: page not found
http.response.code == 404

# Show only certain HTTP methods
http.request.method == "POST" || http.request.method == "PUT"

# Show only javascript
http.content_type contains "javascript"


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

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

评论


+1 for Firebug-我喜欢他们的网络监控工具

–乔什
09年9月21日在23:15

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

– Purefan
2014年11月18日在8:54

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

– Arjan
2014年11月18日19:46

#6 楼

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


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

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

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


请求和响应标头
发送和接收的cookie
查询字符串参数
POST参数
响应正文




以及屏幕截图:



评论


这与较新版本的Firefox(Firefox 57和Firefox Developer Edition 57)不兼容。

– Promather
18年1月14日在1:43

#7 楼

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


Wireshark

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

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

评论


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

– Marko Bonaci
15年8月17日在19:54



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

–方堡
2015年12月1日在15:10

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

–arcseldon
16年2月1日在16:47

#8 楼

我迟到了-我使用Paros Proxy。它是在Java中,所以是跨平台的。虽然,如果您希望将其打包为应用程序,则底部会有一个。

#9 楼

不要忘记Burp Suite。他们有一个免费版本。它是跨平台的。 http://portswigger.net/burp/

#10 楼

似乎免费的GlimmerBlocker可以解决部分问题。
当然,它可以阻止所有内容,并在浏览器收到响应之前对其进行转换。但实际上,它可以修改请求和响应。尽管不是真正的调试,但它也提供日志记录。因此,它可能满足基本需求:

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

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

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

评论


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

–道格·哈里斯(Doug Harris)
2010年1月7日在16:46

#11 楼

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

唯一的警告是,您必须手动配置网络设置以指向VM的IP地址,但实际上并不需要大不了了。

评论


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

–詹姆斯·摩尔
13年8月15日在17:08

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

– Alex Sorokoletov
2015年5月15日下午6:06

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

–雅各布
15年5月20日在17:16



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

–火星罗伯逊
2015年10月12日在7:23

而且在macOS中对我不起作用

–tom10271
18年1月10日,下午2:14

#12 楼

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

#13 楼

可可包分析仪非常有用。

评论


有什么帮助?悬崖笔记版本会很有帮助

–游侠怪胎♦
2012年6月25日14:04

可可数据包分析器能够成功捕获HTTP通信,但它不执行请求/响应重建:(

–吉恩
2014年3月26日10:25

#14 楼

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

#15 楼

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