Server Replay Without Timing

I’m trying to understand the server replay feature a little better. What I want to do is pretty straight-forward:

The first time a server makes a request to a url, serve the response and then cache it locally. Every subsequent request should be served immediately from cache.

I don’t want to “replay” the response exactly the same way it was originally served because it’s slow on the first request (i.e. it takes 15s to respond on the first time, I want it to basically be instantaneous after that).

Is this the right tool for the job? I know I could probably use Squid or some other proxy, but I want to use mitmproxy for other things (rewriting responses etc.) and so it would be great if I could use a single tool, and it seems possible. Maybe I need to write my own addon though?

Any help better understanding the server replay feature would be greatly appreciated!

Just wanted to leave an update here, I used the replay feature, saved out the flow response to a file, then used

mitmweb --mode reverse:http://localhost:3000 -S saved_flow --server-replay-nopop

This did exactly what I wanted.


I need to cache each response received with mitmproxy, I already recorded and replayed the cached requests but I have the same issue as you, the time to get the actual response also gets replayed, but I want it to be instantaneous.

The machine is making multiple requests to multiple servers, so I don’t quite understand what should be defined as reverse proxy url.

Can anyone help me to understand what should be used here?