我已经为此工作了一段时间 - 我正在构建一个模块,该模块需要捕获进出主机的 HTTP/HTTPS 流量。我最初选择的语言是 Java,我可以执行以下操作:
- 使用 LittleProxy 创建代理服务器
- 修改我的浏览器设置以使用我创建的代理
- 在浏览器上执行交易,以便我的代理可以记录它们。
这工作正常,除了以下问题:
- 对于使用我的应用程序的人来说,这会产生额外的手动开销来手动设置浏览器上的代理详细信息(尽管这可以通过更改浏览器设置和启动的代码来完成)。
- 我的应用程序只能记录来自指向代理的特定浏览器的交易。
我想以消除用户开销的方式增强此模块。类似于 Wireshark、Fiddler 和 LoadRunner (VuGen)。我的问题是,他们是怎么做到的?他们是否还在幕后的某个地方运行代理?还是他们从网络、操作系统或其他层嗅探 HTTP 流量?
所以准确地说,我有以下问题:
- 创建代理是捕获 HTTP 请求的唯一方法吗?
- 我可以从操作系统级别(没有代理)跟踪请求/响应吗?如果是,那么 Java 是否足够好,还是我应该倾向于 .NET(C# 之类的)?
- 如果代理是唯一的方法,我可以利用 Fiddler 或 Wireshark 吗?他们是否有我可以合并到我的代码中的 API?(我没有在他们的文档中看到任何东西——可能我看起来不够努力)
任何信息都会帮助我找到方向。请帮忙!
谢谢,斯里拉姆斯里达兰