프록시 서버란? (feat. 필요한 이유) (What is a Proxy server?)
Proxy란?
Proxy는 사전적 의미로 "대리" 하는 것을 뜻한다.
컴퓨터 과학적인 의미로는 프로토콜 상에서 무엇인가를 대신하는 것을 뜻한다.
Proxy 서버
프록시 서버는 클라이언트에서 서버로 접속을 할 때 직접적으로 접속하지 않고 중간에 대신 전달해주는 서버를 의미한다.
좀 더 구체적으로 설명하면 아래와 같이 진행된다.
1. 클라이언트에서 프록시 서버로 전달할 요청을 보낸다.
2. 프록시 서버는 클라이언트로부터 전달 받은 요청을 서버에 요청한다.
3. 서버는 요청에 맞게 데이터를 프록시 서버로 전달한다.
4. 프록시 서버는 서버로부터 전달 받은 데이터를 클라이언트에 전달한다.
이와 같이 프록시 서버는 클라이언트와 서버 사이에서 중개인 역할을 한다고 보면 된다.
Proxy 서버는 왜 필요할까?
그렇다면 클라이언트에서 서버로 곧바로 요청과 데이터를 주고 받지 않고 프록시 서버를 거쳐서 주고 받는 이유가 무엇일까?
거기엔 몇 가지 이유가 있다.
1. 보안
프록시 서버를 통해서 데이터를 주고 받는 가장 큰 이유는 보안이다.
만약 클라이언트에서 "~~여기 주소로 어떤 것 갖다줘!" 라고 요청을 보낼 경우 서버의 주소가 쉽게 노출되고 이를 통해서
다른 익명의 사용자가 서버로 접근하기 쉬워지게 된다.
하지만 프록시 서버를 거쳐 "자 이거 서버로 요청보내!" 라고 명령을 내리면 다른 익명의 사용자는 서버의 위치를 알아내기가 쉽지 않다.
즉, 서버의 IP를 숨기는 것이 가능하고 이는 외부로부터 위험을 막아주는 역할을 한다.
2. 캐시
그 다음으로 프록시 서버가 이용되는 이유는 캐시이다.
캐시를 사용한다는 것은 곧 속도를 빠르게 하는데 도움을 준다.
갑자기 "캐시랑 속도랑 무슨 상관이지?" 라는 의문이 들 것이다.
캐시가 속도를 빠르게 하는데 도움을 주는 방식은 바로 이전에 했던 요청들을 프록시 서버에 저장(캐시) 해두어
다음 번에 재요청을 보낼 때 서버를 거치지 않고 데이터를 주고 받을 수 있기 때문에 속도가 더 빨라질 수 있다.
3. 우회
프록시 서버가 이용되는 세 번째 이유는 우회이다.
보안에서는 클라이언트에서 서버의 주소를 감출 수 있다고 언급했다.
이와 같이 IP 주소를 감출 수가 있기 때문에 어느 곳에서 접속한지를 숨길 수가 있다.
이는 곧 IP를 통해 접속을 감지하는 사이트를 프록시 서버를 통해 우회할 수가 있다.
Forward Proxy와 Reverse Proxy
1. Forward Proxy
Forward Proxy는 보안을 위해 사용되는 방식입니다.
즉, 클라이언트에서 요청을 할 때 직접 요청하는 것이 아닌 프록시 서버를 거치는 방식이 바로 포워드 프록시입니다.
2. Reverse Proxy
Reverse Proxy는 Forward Proxy와 반대로 서버에서 클라이언트 직접 데이터를 전달하지 않고 프록시 서버를 거치는 방식이 바로 리버스 프록시입니다.
출처 : 블로그 링크
위 포스팅이 문제될 경우 삭제하겠습니다.