用于实现代理服务器的J2EE解决方案:监控,跟踪,保存和(重新加载)Http流量

时间:2011-07-28 13:34:55

标签: http java-ee proxy monitoring

正如标题所描述的那样,应该实现一个代理来监视,跟踪,保存和(重新加载)客户端传出请求传入响应的Http流量。

我处于设计/分析阶段:以下是流程:

  1. 客户通过代理上的代理页面设置其请求URL(目标)(即:http://localhost:port_name/proxy_confg_page.html)。
  2. 客户端通过代理发送(POST / GET / etc。方法)请求(如果代理将发送它)。代理会嗅探流量,无论如何都会保存请求参数。

  3. 代理从请求的URL(目标URL)接收(HTTP)响应。

  4. 对于成功请求(响应状态代码在200-299之间),代理可以以某种方式保存请求和响应以用于进一步的进程,并将响应重定向到客户端以“看到”其答案。
  5. 客户端从代理接收传入(http)响应并显示它。
  6. 客户端可能会点击响应链​​接,通过代理将其设置为下一个请求的下一个目标网址
  7. 从第1步开始全面开始
  8. 我有两个问题:

    • 上面描述的逻辑稳定的流程是什么?如果不是你不介意请纠正我?

    • 我想使用一个可靠且可扩展的lib来处理代理中的流量(读取,更新):我想到了HttpClient。可以请你做这个工作吗?如果不是,谢谢你告诉我为什么以及哪种选择可能更好。

    我希望听到一些有经验的网络开发者的一些好的答案。谢谢

2 个答案:

答案 0 :(得分:1)

您描述的过程似乎是一个普通的转发代理,不包括第一点:

  

客户通过代理上的代理页面设置他的请求URL(目标)(即:http://localhost:port_name/proxy_confg_page.html)。

你是什么意思?每个请求的用户是否必须由某个管理面板设置请求URL?我不希望它有任何成功的机会。

如果您的意思是转发代理(它是您在网络浏览器偏好设置中设置的代理类型),您的推理很好(不包括第一点)。

关于您的第二个问题:HttpClient是您可以在您的案例中使用的最佳工具 - 它是强大,成熟且经过良好测试的库。我所知道的最好的一个。

答案 1 :(得分:0)

我找到了一个解决方案: 我将使用Tomcat作为转发代理。

1-在浏览器中,设置Web应用程序的地址(如http://localhost:port/Webapp

webapp中的

2-使用HttpClient来捕获来自用户的所有传入请求,先保存它们然后转发然后在外面请求。

3-使用httpClient检索响应,保存响应实体并将其转发到调用浏览器