공부하는 스누피

[네트워크] 프록시 본문

CS/네트워크

[네트워크] 프록시

커피맛스누피 2021. 11. 21. 17:43

프록시

: 클라이언트의 입장에서 트랜잭션을 수행하는 중개인

 

프록시 vs 게이트웨이

프록시는 같은 프로토콜을 사용하는 둘 이상의 App을 연결하고,

게이트웨이는 서로 다른 프로토콜을 사용하는 둘 이상의 App을 연결한다.

 

프록시를 쓰는 이유

  • 모든 트래픽을 볼 수 있고, 건드릴 수 있어 부가 기능을 제공할 수 있다.
  • 보안을 강화할 수 있다. (방화벽 프록시)

 

프록시의 종류 1 - 쓰임에 따른 종류

  • 보안 방화벽
  • 웹 캐시
  • 대리 프록시(Surrogate, 리버스 프록시)
  • 콘텐츠 라우터: 콘텐츠의 종류에 따라 다른 웹 서버와 연결
  • 익명화 프록시(Anonymizer) : HTTP 메시지에서 신원을 식별할 수 있는 특성을 제거해 익명성 보장에 기여함.

 

프록시의 종류 2 - 배치에 따른 종류

  • 출구(Egress) 프록시: 로컬 네트워크와 더 큰 인터넷 사이를 오가는 트래픽을 제어한다. 방화벽을 제공하거나, 트래픽의 성능을 개선시킬 수 있다.
  • 접근(입구) 프록시: ISP 접근 지점에 위치시켜 모든 요청을 종합적으로 처리하고, 캐싱으로 접근 속도를 개선시킨다.
  • 대리 프록시(리버스 프록시): 웹 서버의 바로 앞에 위치하여 필요할 때만 웹 서버에게 자원을 ㄴ요청한다. 캐싱, 보안 기능으로 성능을 개선시킬 수 있다.
  • 네트워크 교환 프록시: 캐시를 이용한 혼잡 완화, 트래픽 흐름 감시 용으로 네트워크 사이의 인터넷 피어링 교환 지점들에 놓인다.

 

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

  • 클라이언트를 수정한다: 클라이언트에서 요청을 바로 프록시로 보내도록 함
  • 네트워크를 수정한다(인터셉트 프록시): HTTP 트래픽을 지켜보고 가로채서 프록시로 보내도록 한다. 스위치나 라우터에서 제어한다.
  • DNS 이름공간을 수정한다: 대리 프록시가 웹 서버의 이름과 IP 주소를 직접 사용하도록 한다.
  • 웹 서버를 수정한다: 웹 서버가 요청을 프록시로 리다이렉트한다.

 

프록시 URI와 서버 URI 차이점

웹 서버로 요청을 보내면 scheme, host, port 번호가 없는데, 프록시로 요청을 보낼 땐 완전한 URI를 갖는다.

 

Hostname Resolution

프록시가 없으면 사용자가 타이핑한 URI를 가지고 그에 대응하는 IP 주소를 찾는데, 호스트가 발견되지 않으면 호스트명 확장을 제공함.

  • www 자동으로 붙임
  • 호스트명의 앞부분만 입력하면 자동으로 도메인 검색

[확장 단계]

1) 사용자가 ABC를 입력

2-1) 브라우저는 DNS를 통해 ABC를 찾는다

2-2) 실패함

3-1) 브라우저는 ABC를 www.ABC.com으로 확장함

3-2) 브라우저는 DNS로 www.ABC.com을 찾는다

3-3) 성공하면 IP 주소를 돌려준다

4-1) 브라우저는 IP 주소들에 대해 성공할 때까지 하나씩 접속 시도

4-2) 성공하면 커넥션을 맺는다

5-1) 브라우저는 HTTP 요청을 보낸다

5-2) 브라우저는 HTTP 응답을 받는다

 

[주의]
!명시적인 프록시 사용하면 부분 호스트명을 자동확장하지 않는다
!인터셉트 프록시일 경우 프록시가 없을 때와 작동 방식이 동일하지만 커넥션이 만들어지고 나서는 작동이 다르다.

 

(참고)

HTTP 완벽 가이드(2014). 데이빗 고울리.이응준 옮김.인사이트

Comments