프록시 서버는 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있도록 중계 역할을 하는 서버를 의미한다.
일반적으로 서버 개발자가 아닌 User 입장에서 Proxy라는 용어를 사용하는 경우는 Forward Proxy다. 아마 한번쯤 다들 사용해봤을 것이라 생각되는데, 이는 클라이언트의 IP를 숨겨 접근할 수 없는 사이트에 접속하거나, IP 추적을 당하지 않기 위해 사용된다.
하지만 개발자 입장에서는 훨씬 심도 깊고, 다양한 방향으로 사용된다.
이러한 프록시 서버는 크게 Forward Proxy와 Reverse Proxy로 나뉜다.
클라이언트가 해당 서버에 직접 요청하는 것이 아니라, 프록시 서버를 통해 해당 서버에 요청을 대신 전송하고 해당 결과를 클라이언트에게 전달해준다.
→ 즉, 서버는 클라이언트가 누구인지 모른다.
→ 인터넷에 접근하는 것보다, 프록시 서버를 먼저 호출하는 것이 포워드 프록시
클라이언트가 서버에 요청을 보낼 때, 리버스 프록시가 요청을 받아서 그에 해당하는 서버에 전달하고 이를 반환해주는 형태이다.
→ 클라이언트는 실제 서버의 IP를 알 수 없다.
→ 인터넷에 먼저 접근하고, 서버 내부 인트라넷에 있는 프록시 서버를 호출하는 형태