In computer networking, a proxy server is a server application that acts as an intermediary between a client requesting a resource and the server providing that resource. [1]
Let's learn via a scenario based approach to understand what is the request and response flow when a user (named, U) requests a resource (R) with a proxy (named, P) in between. Originally, R resides on server S.
1. U requests R
2. P acknowledges the request for R, from U
3. P requests S for R
4. S acknowledges the request for R, from P
5. S returns P with R
6. P acknowledges the response of R, from S
7. P returns R to U
This serves as a method to simplify or control the complexity of the request, or provide additional benefits such as load balancing, caching, privacy, and security.