본문 바로가기

프로그래밍/HTTP

[HTTP 완벽 가이드] 프록시

웹 중개자

프록시 서버는 클라이언트의 입장에서 트랜잭션을 수행하는 중개인이다.

대신 서버에 요청을 하기 때문에 프록시 서버는 클라이언트 면서 서버 이기도 하다.

 

대부분 프록시는 공유 프록시다.

캐시 프록시 같이 몇몇 프록시는 이용하는 사용자가 많을 수록 유리한 프록시도 있다.

 

개인 프록시 vs 공유 프록시

개인 프록시 - 하나의 클라이언트가 독점적으로 사용하는 프록시

공용 프록시 - 여러 클라이언트가 사용하는 프록시

 

프록시 vs 게이트웨이

프록시는 둘 이상의 어플리케이션을 연결하는데 같은 프로토콜을 사용한다.

게이트웨이는 둘 이상의 어플리케이션을 연결하는데 다른 프로토콜을 사용한다.

 

하지만 실질적 차이는 모호하다 프록시도 때론 다른 프로토콜로 변환하기도 한다.

 

왜 프록시를 사용하는가?

프록시는 실용적이다. 보안, 성능, 비용 절감 등을 하며 필터링이나 접근 제어, 캐시 등의 작업을 한다.

서버에 접근할때도 좀 더 비용이 적은 캐시 서버를 프록시로 둬서 비용 절감을 할 수 도 있다.

 

프록시는 어디에 있나?

사용하는 방식에 따라 다르게 위치 할 수 있다.

출구 프록시 위치: (a) 방식처럼 LAN 의 출구 용도로 사용을 하면 부적절 컨텐츠를 막을 수 있고 해커를 막는 방화벽을 세울 수 도있다.

 

접근 프록시 위치: (b) 방식처럼 ISP 에 접근 지점에 있고 다운로드 속도 개선이나 인터넷 대역폭 비용을 감소 시킬 수 있다.

 

대리 프록시 위치: (c) 처럼 네트워크 가장 끝에서 캐시 용도로 사용된다.

 

네트워크 교환 프록시 위치: (d) 처럼 네트워크 사이에 있고 캐시를 이용한 트래픽 흐름을 감시하는 프록시다.

 

 

프록시의 계층구조

 

서버 쪽으로 갈 수록 부모 서버가 되고, 자식 프록시는 자신의 요청을 수행할 부모 프록시를 정할수도 있다.

 

프록시가 어떻게 트랙픽을 처리하는가

 

클라이언트의 트래픽이 프록시로 가도록 하는 네가지 방법

 

- 클라이언트에서 수정

많은 웹 클라이언트들은 수동 혹은 자동 프록시 설정을 지원한다.

설정이 되어 있다면 의도적으로 프록시에게 요청을 전달한다.

 

- 네트워크를 수정

클라이언트에선 알 수도 간섭도 할 수 없다.

네트워크 인프라를 가로채게된다.

 

- DNS 수정

웹 서버 앞에 위치해서 웹 서버 이름과 IP주소를 자신이 직접 사용

 

- 웹 서버를 수정

리다이렉션 명령으로 클라리언트 요청을 프록시로 리다이렉트 하게 설저앟ㄴ다.

리다이렉트로 받는 즉시 프록시와 트랜잭션 시작