在以前的工作中,当我在Windows计算机上工作时,我使用Fiddler来查看HTTP事务和调试。
我特别希望监视正在处理的ajax站点的HTTP事务,以验证该站点是否按预期运行。重写HTTP(由Fiddler提供)是很不错的,但不是必需的。
有人可以推荐在Mac上使用类似的东西吗?
在以前的工作中,当我在Windows计算机上工作时,我使用Fiddler来查看HTTP事务和调试。
我特别希望监视正在处理的ajax站点的HTTP事务,以验证该站点是否按预期运行。重写HTTP(由Fiddler提供)是很不错的,但不是必需的。
有人可以推荐在Mac上使用类似的东西吗?
Answers:
使用Chrome浏览器并导航至chrome:// net-internals /
它允许进行详细的分析和转储。
我找到了Charles Proxy。它更接近Fiddler的功能。它不是免费的,但可能值得。
我最喜欢的用于监控流量的Mac应用程序是HTTPScoop,我在去年写的这篇文章中详细介绍了该命令以及在命令行中使用tcpdump 。
smtp
作为显示过滤器来查看使用SMTP协议的所有流量或者,tcp.port == 25
让所有通信端口25,和它的响应或。http and ip.addr == xxx
让所有HTTP流量以及一些服务器。)
不是您的要求,但是在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
”。)喜欢的:
#仅显示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,则请首先观看介绍视频。)
除了Charles(已经提到过)之外,我还喜欢Mozilla Firefox 的HttpFox附加组件。与Charles一样,您可以在Mac和Windows上使用它。它比Charles轻巧,因为它位于浏览器中,有助于快速进行故障排除。这是HttpFox页面上的一些信息:
HttpFox监视并分析浏览器和Web服务器之间的所有传入和传出HTTP通信。
它旨在将HttpWatch或IEInspector之类的工具中已知的功能引入Firefox浏览器。
每个请求可用的信息包括:
- 请求和响应头
- 发送和接收Cookie
- 查询字符串参数
- POST参数
- 反应体
并且,截图:
不是代理,但它确实有助于调试HTTP:
只需在将要打开HTTP通信的接口上开始扫描,执行通信,然后停止扫描,然后输入“ HTTP”作为过滤字符串即可。然后,您将能够检查HTTP对话的所有数据包。打开“数据包详细信息”视图后,您可以打开“ HTTP”部分,它将在数据包之间保持打开状态。
这是一个很棒的工具,不需要您更改浏览器代理。另一方面,由于已加密,因此它无法帮助HTTPS通信。(尽管它可以解密使用RSA的SSL连接)
我来晚了-我使用了Paros Proxy。它是Java语言,所以是跨平台的。但如果你希望它被打包为一个应用程序,有一个在这里的底部。
不要忘记Burp Suite。他们有一个免费版本。它是跨平台的。http://portswigger.net/burp/
看来免费的GlimmerBlocker可以解决部分问题。
当然,它可以阻止所有类型的内容,并在浏览器收到响应之前转换响应。但实际上它可以修改请求和响应。尽管不是真正的调试,但它也提供日志记录。因此,它可能适合基本需求:
GlimmerBlocker内部运行的脚本有4种,某些对象仅针对某些脚本类型定义:
- 全局代理:设置全局代理设置,并且可以测试例如位置名称,AirPort网络。
- 请求修改:这可以更改请求的URL,将重定向响应发送回浏览器,或将text / html发送回浏览器。
- 关键字扩展。[仅限Safari,AvB]
- 转换:修改Web服务器收到的响应,然后将其发送回Safari [或设置为使用GlimmerBlocker,AvB提供的代理的任何浏览器]。
(也可以使用它在收到的响应中包含各种Greasemonkey脚本,而无需使用Greasemonkey附加组件,例如阻止Flash而不安装任何附加组件。)
您可以按照Parallels网站上的说明使用Parallels 轻松配置Mac版Fiddler。
唯一需要注意的是,您必须手动配置网络设置以指向VM的IP地址,但这并不是一件大事。
您也可以尝试APIKitchen。它可以帮助您调试和测试HTTP API以及所有常规请求。它还具有脱机版本,可在内部网络中进行测试。无需安装。