As per my understanding...
To start with, as everyone knows, proxy means "the authority to represent someone else". Now there are two things, forward and reverse proxy.
Suppose you want to access "Google" and "Google" in turn will have n number of servers to respond to that particular request.
Now in this case, while you are requesting for something from Google and you don’t want Google to see your IP address, then you will use a forward proxy, as explained below.
A ? B ? C
Now here you are A, sending a request through B. So C will think that the request is coming from B, not A. In this way you can prevent your clients IP address not to be exposed to outer world.
Now in this case, to make you understand, we will take the same case of forward proxy. Here you have requested for something to Google, which in turn going to send the one request to the app server or another proxy server to get the response. So these things will happen as explained below.
A ? B ? C
C ? D
C ? D
A ? B ? C
From the above diagram you can see that a request has been sent to C from B, not from A. Then from C there will be one request send to D. Similarly the response will go to C from D and then to B and A.
The above diagram says it's only the context which matters although both the proxies are acting the same way, but the client-side proxy is hiding the client information whereas the server-side proxy will hide server-side information.