A proxy is a server that relays traffic between two endpoints instead of letting them talk directly. The client sends its request to the proxy, the proxy decides what to do with it, and then it talks to the real destination. The response comes back the same way, in reverse.
There are two flavors, and the difference is whose side the proxy is on. A forward proxy sits in front of clients. When 5,000 employees in an office browse the web through one proxy, the websites they visit only see the proxy's IP address, not each employee's machine. A reverse proxy sits in front of servers. When you load a large website, you are almost always hitting a reverse proxy first, and it routes your request to one of many backend servers behind it.
The key idea is indirection. Because every request flows through one controlled point, the proxy can inspect, cache, block, rewrite, encrypt, or count traffic before passing it along. Neither the client nor the server has to know the other one exists directly.