正如标题所描述的,应该实现代理来监视,跟踪,保存和(重新加载)客户端传出请求传入响应的Http流量。
我在设计/分析阶段:以下是流程:
- 客户端通过代理上的代理页面(即:http://localhost:port_name/proxy_confg_page.html)设置他的请求URL(目标)。
-
客户端发送(POST/GET/etc)方法)通过代理请求(如果代理将发送它)。代理嗅探流量,无论如何保存请求参数。
-
代理从请求的URL(目标URL)接收(HTTP)响应。
- 对于成功的请求(响应状态码在200-299之间),代理可以以某种方式保存请求和响应以供进一步处理,并将响应重定向到客户端以"查看"其答案。
- 客户端接收来自代理的传入(http)响应并显示它。客户端可以点击响应的链接,通过代理 将其设置为下一个请求的下一个目标URL。
- ,然后从第一步重新开始
我有两个问题:
-
上述工艺流程是否逻辑稳定?如果不是,你不介意纠正我吗?
-
我想使用一个可靠和可扩展的库来处理代理中的流量(读取,更新):我想到了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检索响应,保存响应实体并将其转发给调用浏览器