First it is interesting to understand the concept of Proxy.
The Proxy is a layer (middleware, server, any implementation that creates that layer) between two points.
This is a broader concept, can be applied in programs and other things. For the concept of the question, a Proxy is intermediating two connected devices on the Internet, which can be two computers, device (printer, gadget, etc.), etc.
What is the reason for using this intermediary between connections? The reasons are several:
- protect devices and their identities;
- protect the network they are part of;
- restrict/block improper access, etc;
Then a Proxy Forward (forwarding) or simply Proxy, is a middleware, which may be software or hardware that is in front of the connection of one computer or device to another.
The figure below, taken from Cloudfire, demonstrates this:
Note that, several computers in a network has in front of you a Proxy, And that’s the middle between them and an Internet resource, a server for example. The reasons can be diverse, as mentioned above, how to protect the identity of the source computer, or even filter what can "exit" to the internet, blocking access to adult websites or upload files for example. So let’s imagine the Proxy as
“The layer that is in front of the source computer and the destination that this
want to access.”
This other image shows the diagram of a Reverse Proxy:
Note that it is basically the same, the purposes may also be, but in this case the Proxy is in front of the destination resource, i.e.,
“The layer that is in front of the target computer, and the source that needs to access it.”
Hence the concept of "inverse", one is just after the origin, the other before destiny, in a very simple way is what it means.