views:

26

answers:

1

Hi,

I am working with a client/server application which uses HTTP, and my goal is to add new features to it. I can extend the client by hooking my own code to some specific events, but unfortunately the server is not customizable. Both client and server are in a Windows environment.

My current problem is that performance is awful when a lot of data are received from the server: it takes time to transmit it and time to process it. The solution could be to have an application on server side to do the processing and send only the result (which is much smaller). The problem is there is not built-in functions to manipulate responses from the server before sending them.

I was thinking to listen to all traffic on port 80, identifying relevant HTTP responses and send them to my application while blocking the response (to avoid sending huge data volume which won't be processed by the client). As I am lacking a lot of network knowledge, I am a bit lost when thinking about how to do it.

I had a look at some low-level packet intercepting methods like WinPCap, but it seems to require a lot of work to do what I need. Moreover I think it is not possible to block or modify responses with this API.

A reverse proxy which allows user scripts to be triggered by specific requests or responses would be perfect, but I am wondering if there is no simpler way to do this interception/send elsewhere work.

What would be the simplest and cleanest method to enable this behavior?

Thanks!

A: 

Hmm.... too much choices. 2 ideas: configure on all clients a Http Proxy. there are some out there, that let you manipulate what goes through in both directions (with scripts, plugins). or make a pass through project, that listens to port 80, and forewards the needed stuff to port 8080 (where your original server app runs)

question is, what software is the server app running at, and what knowledge (dev) do you have? ah. and what is "huge data"? kilobyte? megabyte? gigabyte?

cRichter