[Network] Forward Proxy, Reverse Proxy

2022. 9. 22. 13:14[ Basic ]/# 네트워크

Proxy의 사전적 의미는 남의 일을 대신 처리한다라는 뜻을 가진다. 즉, 마치 누군가의 대리인처럼 역할을 하는 존재이다. Spring Proxy, Network Proxy, Proxy Pattern 등 Proxy는 여러 분야에서 사용되지만 이번 포스팅에서는 Proxy의 기본이 되는 Network Proxy에 대해 알아본다.

 


 

Proxy의 종류

Forward Proxy

https://www.upguard.com/blog/reverse-proxy-vs-load-balancer

 

일반적으로 말하는 프록시는 Forward Proxy이다. Forward Proxy는 클라이언트와 인터넷 사이에 위치하게 된다. 즉, Forward Proxy가 클라이언트 쪽에 붙어서 흐름을 대신 처리한다.

 

 

Forward Proxy의 특징

1. 캐싱

- 클라이언트가 '요청한 내용과 이에 대한 응답 내용'을 캐싱한다.

- 서버에서 클라이언트에 응답을 하면 해당 응답은 Forward Proxy에 캐싱된다.

- 이렇게 요청과 응답을 캐싱해두면 이후 같은 요청에 대해서 실제 서버까지 가지 않고도 데이터를 받아올 수 있게 된다.

 

2. 익명성

- 클라이언트가 보낸 요청을 감추는 기능을 한다.

- 만약 Forward Proxy가 없고 클라이언트가 보낸 요청을 그대로 서버로 보낸다면 익명성이 보장되지 않을 것이다. 여기서 익명성이란 IP 정보, 장비 정보, OS 정보 등이 포함된다.

- Forward Proxy를 두면 클라이언트의 정보가 아니라 Forward Proxy의 정보가 서버로 넘어간다.

- 즉, 서버에게 요청을 누가 보냈는지 모르게 한다. 서버 입장에서 받은 요청의 IP 정보는 Forward Proxy의 IP 정보가 된다.

 

 

Reverse Proxy

https://www.upguard.com/blog/reverse-proxy-vs-load-balancer

 

Reverse Proxy는 인터넷과 서버 사이에 존재하게 된다.

 

 

Reverse Proxy 특징

1. 캐싱

- 클라이언트가 요청한 내용과 서버가 응답한 내용을 캐싱한다. (Forward Proxy와 동일)

 

2. 보안

- 서버 정보를 클라이언트로부터 숨긴다.

- 클라이언트 입장에서 서버의 정보를 알지 못한다. 즉, 클라이언트 입장에서는 Reverse Proxy 서버를 실제 서버로 인식한다. 따라서 실제 서버의 IP주소 등에 대한 정보가 노출되지 않는다.

 

3. Load Balancing (Optional)

- OSI 7 Layer를 기준으로 L2, L3, L4, L7 로드밸런서가 있으며 L2는 MAC 주소 기반, L3는 IP주소 기반, L4는 IP와 Port기반, L7은 애플리케이션 레벨에서(HTTP, FTP 등) 이를 기반으로 하는 로드밸런서이다.