목차
프록시는 사전적인 의미로 ‘대리인’, ‘중개자’ 라는 의미를 가지고 있다.
컴퓨터 공학에서 프록시는 보안상의 문제로 직접 통신을 주고 받을 수 없는 두 PC 사이에서 통신을 중계하는 것을 의미한다.
이처럼 중계 기능을 수행하는 서버를 ‘프록시 서버’라고 한다.
![출처: What is a Proxy Server? How does it work? [fortinet]](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/28f21771-61d9-4856-a4fb-13ee2b0daec4/Untitled.png)
출처: What is a Proxy Server? How does it work? [fortinet]
보통 웹 서비스는 클라이언트와 서버가 데이터를 주고 받는다.
이때 중복되는 데이터를 반복해서 전달하는 상황이 발생할 수 있는데, 동일한 요청을 매번 처리하는 것은 리소스 낭비와 서버의 부하로 이어진다.
그래서 본 서버에 도달하기 전에 새로운 서버(proxy server)를 미리 배치해서 중복 요청에 대해, 특히 연산이 필요없는 요청에는 동일한 응답을 하도록 한다. 그러면 클라이언트 입장에서는 빠르게 요청을 받아볼 수 있고, 서버 입장에선느 불필요한 부하를 줄이는 효과를 누릴 수 있다.
프록시 서버는 서버가 어디에 위치해있는지에 따라 포워드 프록시와 리버스 프록시로 나뉜다. 프록시의 종류에 따라 사용하는 목적과 수행하는 역할도 함께 달라진다.
클라이언트가 서버로 자원을 요청할 때, 직접 요청하지 않고 프록시 서버를 거쳐 요청하는 서버를 포워드 프록시라고 한다. 포워드 프록시는 클라이언트 앞에 위치하고 있다.
![출처: 포워드 프록시(forward proxy) 리버스 프록시(reverse proxy) 의 차이 [lesstif]](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/978f1916-4a70-4390-b363-15f926fab183/Untitled.png)
출처: 포워드 프록시(forward proxy) 리버스 프록시(reverse proxy) 의 차이 [lesstif]
예를 들어, 클라이언트가 google.com 에 접속하고자 하는 경우, 클라이언트가 직접 google.com 에 요청하는 것이 아니라 포워드 프록시 서버가 클라이언트의 요청을 받아서 대신 google.com 에 요청하는 것이다. 그리고 서버의 응답을 다시 포워드 프록시 서버가 받아서 클라이언트에게 전달(forward)하는 역할을 수행한다.
클라이언트가 직접 서버에 요청을 수행하면 되는데, 굳이 중간에서 포워드 프록시 서버가 대신 전달해주는 이유는 무엇일까?
보안상의 이유로 일부 정부, 학교, 기업에서는 방화벽을 이용해서 사내망이 아닌 외부의 특정 사이트에 접속하는 것을 막고 있다.