Proxy (프록시)

rabyeoljji·2024년 5월 3일

techblog (기술블로그)

목록 보기
10/17
post-thumbnail


Proxy란?


Proxy는 사전적 의미로 "대리" 하는 것을 뜻한다.

컴퓨터 과학적인 의미로는 프로토콜 상에서 무엇인가를 대신하는 것을 뜻한다.




Proxy 서버


프록시 서버는 클라이언트에서 서버로 접속을 할 때 직접적으로 접속하지 않고 중간에 대신 전달해주는 서버를 의미한다.

좀 더 구체적으로 설명하면 아래와 같이 진행된다.

(출처:https://www.seobility.net/en/wiki/Proxy_Server)


  1. 클라이언트에서 프록시 서버로 전달할 요청을 보낸다.

  2. 프록시 서버는 클라이언트로부터 전달 받은 요청을 서버에 요청한다.

  3. 서버는 요청에 맞게 데이터를 프록시 서버로 전달한다.

  4. 프록시 서버는 서버로부터 전달 받은 데이터를 클라이언트에 전달한다.


이와 같이 프록시 서버는 클라이언트와 서버 사이에서 중개인 역할을 한다고 보면 된다.




Proxy 서버는 왜 필요할까?


그렇다면 클라이언트에서 서버로 곧바로 요청과 데이터를 주고 받지 않고 프록시 서버를 거쳐서 주고 받는 이유가 무엇일까?

거기엔 몇 가지 이유가 있다.


1. 보안

프록시 서버를 통해서 데이터를 주고 받는 가장 큰 이유는 보안이다.

만약 클라이언트에서 "~~여기 주소로 어떤 것 갖다줘!" 라고 요청을 보낼 경우 서버의 주소가 쉽게 노출되고 이를 통해서 다른 익명의 사용자가 서버로 접근하기 쉬워지게 된다.

하지만 프록시 서버를 거쳐 "자 이거 서버로 요청보내!" 라고 명령을 내리면 다른 익명의 사용자는 서버의 위치를 알아내기가 쉽지 않다.

즉, 서버의 IP를 숨기는 것이 가능하고 이는 외부로부터 위험을 막아주는 역할을 한다.


2. 캐시

그 다음으로 프록시 서버가 이용되는 이유는 캐시이다.

캐시를 사용한다는 것은 곧 속도를 빠르게 하는데 도움을 준다.

이전에 했던 요청들을 프록시 서버에 저장(캐시) 해두어 다음 번에 다시 요청을 보낼 때 서버를 거치지 않고 데이터를 주고 받을 수 있기 때문에 속도가 더 빨라질 수 있다.


3. 우회

프록시 서버가 이용되는 세 번째 이유는 우회이다.

보안에서는 클라이언트에서 서버의 주소를 감출 수 있다고 언급했다.

이와 같이 IP 주소를 감출 수가 있기 때문에 어느 곳에서 접속한지를 숨길 수가 있다.

이는 곧 IP를 통해 접속을 감지하는 사이트를 프록시 서버를 통해 우회할 수가 있다.



(+)

기타 : CORS Error 막기 위해

도메인에 접근할 수 있는 권한과 관련된 것




Forward Proxy와 Reverse Proxy


1. Forward Proxy

Forward Proxy는 보안을 위해 사용되는 대표적인 방식이다.

즉, 클라이언트에서 요청을 할 때 직접 요청하는 것이 아닌, 프록시 서버를 거치는 방식이 바로 포워드 프록시!

(출처 : www.imperva.com)


2. Reverse Proxy

Reverse Proxy는 Forward Proxy와 반대로 서버에서 클라이언트로 직접 데이터를 전달하지 않고 프록시 서버를 거치는 방식이 바로 리버스 프록시이다.

(출처 : www.imperva.com)



profile
⛅🛩️ 먼 길을 돌아서 온 프론트엔드 개발자 ✈️⛅

0개의 댓글