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



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

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

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

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

  4. 对于成功的请求(响应状态码在200-299之间),代理可以以某种方式保存请求和响应以供进一步处理,并将响应重定向到客户端以"查看"其答案。
  5. 客户端接收来自代理的传入(http)响应并显示它。客户端可以点击响应的链接,通过代理
  6. 将其设置为下一个请求的下一个目标URL。
  7. ,然后从第一步重新开始

我有两个问题:

  • 上述工艺流程是否逻辑稳定?如果不是,你不介意纠正我吗?

  • 我想使用一个可靠和可扩展的库来处理代理中的流量(读取,更新):我想到了HttpClient。它能完成任务吗?

我希望从一些有经验的web开发人员那里听到一些好的答案。谢谢你

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

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

那是什么意思?用户的每一个请求必须设置请求url由一些管理面板?我不指望它有任何成功的机会。

如果你的意思是转发代理(这是你在web浏览器首选项中设置的代理类型),你的推理是好的(不包括第一点)。

关于你的第二个问题:HttpClient是你可以在你的情况下使用的最好的工具-它是健壮的,成熟的和经过良好测试的库。

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

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

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

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

最新更新