Proxy의 사전적 의미는 '대리'이다. 두 PC가 통신을 할 때 직접 하지 않고 중간에서 대리로 통신을 하는 것을 Proxy라고 하고, 중계 역할을 하는 것을 Proxy Server라고 부른다.
즉, 클라이언트와 서버 사이의 중계 서버라고 생각하면 된다. 프록시 서버는 보안 목적이나 캐싱 등의 기능을 제공한다.
Proxy Server가 중간에 위치함으로써 클라이언트는 Proxy Server를 Server라고 인식하고 서버 입장에서는 Proxy Server를 Client로 인식하게 된다.
Proxy Server는 서버가 어디에 위치하느냐에 따라 Foward Proxy와 Reverse Proxy로 나뉜다.
일반적으로 Proxy라고 말하면 Foward Proxy를 뜻한다.
클라이언트에서 서버로 리소스를 요청할 때 직접 요청하지 않고 Proxy Server를 거쳐서 요청한다. 이 경우 서버에서 받는 IP는 클라이언트의 IP가 아닌 Proxy Server의 IP이기 때문에 서버는 클라이언트가 누군지 알 수 없다. 즉, 서버에게 클라이언트가 누구인지 감춰주는 역할을 한다.
이러한 특징 때문에 기업 사내망에서 주로 사용된다.
1) 요청 → 2) 요청 전송 → 3) 요청 접수 → 4) 응답 생성 → 5) 응답 전송 → 6) 응답 수신
과 같은 과정을 반복해서 거친다. 요청이 한 번 뿐일 때는 괜찮지만, 중복되는 요청을 매번 처리하기에는 심한 자원낭비가 생기고, 웹 서버의 부하가 증가할 것이다.리버스 프록시는 포워드 프록시와 반대 개념이다.
애플리케이션 서버의 앞에 위치하여 클라이언트가 서버를 요청할 때 리버스 프록시를 호출하고, 리버스 프록시가 서버로부터 응답을 전달받아 다시 클라이언트에게 전송하는 역할을 한다.
이 경우, 클라이언트는 애플리케이션 서버를 직접 호출하는 것이 아니라 프록시 서버를 통해 호출하기 때문에 리버스 프록시는 애플리케이션 서버를 감추는 역할을 하게 된다.