By definition proxy means,
The authority to act on behalf of someone else.
To understand the definition, we can refer to our college life, whenever we didn't want to attend a boring class, we setup a friend to give (proxy) attendance on behalf of ourselves. The phenomena is kind of similar. We have also proxy voting, where a person gives vote on behalf of some other person.
In computer science when people talk about proxy, most of the time they simply refers to "proxy server".
Now let me explain what proxy server does. Let's say when you wants to to visit "https://dev.to/" from your bowser, your request doesn't directly go to that website. There is your ISP (Internet Service Provider) sits in between you and the website who takes your request and pass it to your desired website. Here your ISP is acting as a proxy for you. Your ISP is sending request on behalf of yourself and that what proxy generally does. This kind of proxy is also called forward proxy, where a proxy server takes request from client and forward the request to server (or some other proxy).
Advantages of Forward proxy:
- Send/ Block request
Proxy can intercept your request and can make choice to pass the request and by this an ISP can block access to certain website ( eg. forbidden sites)
- Monitor request
Proxy servers can log the sites visited by users. (ISP knows which website you visit by setting up proxy)
- Caching response
Proxy can cache response for one request and then, when there are subsequent request to same site , they can send back the cached response instead of making a completely new request.
Advantage of reverse proxy
- Load Balancing
A reverse proxy can evenly distribute request to all the available servers instead of just one server.
- DDOS protection
By proxy a server can protects itself from Distributed Denial of Service attach by limiting the request or blocking the request patterns.
In summary, both types of proxy are almost same but the direction of information flowing.