如何拦截和修改服务器端的HTTP响应?

时间:2010-07-05 15:02:33

标签: http response interceptor

我正在使用使用HTTP的客户端/服务器应用程序,我的目标是为其添加新功能。我可以通过将自己的代码挂钩到某些特定事件来扩展客户端,但遗憾的是服务器无法自定义。客户端和服务器都在Windows环境中。

我目前的问题是,当从服务器收到大量数据时,性能很糟糕:传输它需要时间,处理它需要时间。解决方案可能是让服务器端的应用程序进行处理并仅发送结果(这要小得多)。问题是在发送服务器之前没有内置函数来操纵服务器的响应。

我正在考虑收听端口80上的所有流量,识别相关的HTTP响应并将其发送到我的应用程序,同时阻止响应(以避免发送不会被客户端处理的大量数据)。由于我缺乏很多网络知识,在考虑如何做到这一点时我有点迷失。

我看过一些像WinPCap这样的低级数据包拦截方法,但似乎需要做很多工作来完成我需要的工作。此外,我认为使用此API阻止或修改响应是不可能的。

允许用户脚本由特定请求或响应触发的反向代理将是完美的,但我想知道是否有更简单的方法来执行此拦截/发送其他工作。

启用此行为的最简单,最干净的方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

我结束了制作一个简单的反向代理来访问HTTP服务器。然后,反向代理从服务器响应中提取相关信息并将其发送到服务器端处理组件,并用客户端用来请求其他组件获取处理结果的ID替换从响应中提取的信息。 http://www.codeproject.com/KB/web-security/HTTPReverseProxy.aspx上的文章对于制作反向代理的初稿非常有帮助。

答案 1 :(得分:0)

嗯......选择太多了。 2个想法: 在所有客户端上配置Http代理。有一些,让你操纵两个方向(通过脚本,插件)。 要么 制作传递项目,侦听端口80,并将所需内容转发到端口8080(原始服务器应用程序运行的位置)

问题是,运行的服务器应用程序是什么软件, 你有什么知识(dev)? 啊。什么是“巨大的数据”?千字节?兆?技嘉?