【问题标题】:how to intercept and modify HTTP responses on server side?如何在服务器端拦截和修改 HTTP 响应?
【发布时间】:2010-07-05 15:02:33
【问题描述】:

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

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

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

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

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

启用此行为的最简单、最简洁的方法是什么?

谢谢!

【问题讨论】:

    标签: http response interceptor


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      嗯....太多的选择。 2个想法: 在所有客户端上配置一个 Http 代理。那里有一些,可以让你操纵双向(使用脚本,插件)。 或者 通过项目,监听端口 80,并将所需的东西转发到端口 8080(您的原始服务器应用程序运行的地方)

      问题是,服务器应用程序在什么软件上运行, 你有什么知识(开发)? 啊。什么是“海量数据”?千字节?兆字节?千兆字节?

      【讨论】:

        猜你喜欢
        • 2015-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多