Proxy describes someone or something acting on behalf of someone else. In the computer realm, we are talking about one server acting on the behalf of another computer.
If we have clients (>= 1), an intermediate web server(in this case, we call it proxy), and a server. The main thing that happens in this is that the server doesn’t know which client is requesting.
In this, let client1 & client2 send requests request1 & request2 to the server through the Proxy server. Now the backend server will not know whether request1 is sent by client1 or client2 but performs the operation.
A Reverse proxy is a reverse of what a proxy does. Here, we will have let’s say a single client, an intermediate web server, and several backend servers (>=1).
In this, a client will send a request through the webserver. Now the webserver will direct to any of the many servers through an algorithm, one being round-robin, and send back the response through the webserver to the client. So here, the client isn’t aware of which backend server it is interacting with.