Proxy


Web Proxy

-       개인 프록시: 클라이언트에서 직접 실행되는 형태

-       공용 프록시: 대부분의 공유된 프록시. 중앙 집중 형태

-       게이트웨이는 클라이언트/서버 간 서로 다른 프로토콜을 연결해 준다.

 

보안 개선, 성능 향상, 비용 절약, 트래픽 감시 등의 기능 수행

-       접근 제어 프록시: 문서, 인터넷 접근 등 제어. 제한된 컨텐츠에 대한 요청에 대하여 407 Proxy Authorization Required 상태코드와 Proxy-Authenticate 헤더를 반환하고, 클라이언트는 Proxy-Authenticate 헤더에 인증 정보를 담아 다시 요청한다.

-       보안 방화벽: 어플리케이션 레이어 프로토콜 트래픽 제어

-       웹 캐시

-       대리 프록시(Surrogate): SSL 가속기

-       컨텐츠 라우터: 트래픽 조건, 컨텐츠 종류에 따라 요청을 특정 웹 서버로 유도

-       트랜스코더: 이미지 변환, 텍스트 압축, 언어 치환 등

-       Anonymizer: 클라이언트 식별 특성들을 제거하여 익명성 보장. 헤더 정보 제거로 구현

 

Proxy arrangement

-       Egress 프록시: 로컬과 인터넷 사이의 트래픽 제어를 위해 로컬 네트워크 출구에 위치. 방화벽, 트래픽 요금 및 성능 개선, 필터링 목적

-       Ingress 프록시: 모든 요청을 종합 처리하기 위해 ISP 접근 지점에 위치. 속도 개선 및 대역폭 비용 감소 목적

-       Surrogate: SSL 가속기는 웹 서버 바로 앞 단에 위치해, 서버로의 요청을 모두 처리. 웹 서버 성능 개선 목적

-       네트워크 교환 프록시: 캐시를 이용해 혼잡을 완화, 트래픽 감시 목적

 

Proxy Layer

프록시 연쇄 구성으로, 다수의 프록시를 거쳐 요청이 처리되는 구조. 프록시는 서로 부모-자식 관계를 가지며, 서버에 가까운 프록시(인바운드)를 부모라 칭한다. 또한 프록시 레이어 내의 프록시들 은 동적으로 경로가 설정될 수 있으며, 로드 밸런스, 지리적 인접성, 프로토콜/타입, 유료 서비스(향상된 속도의 서비스 가입자를 위한) 등의 방식을 사용할 수 있다.

 

프록시의 트래픽 처리 방법

-       클라이언트 수정: 브라우저에서 프록시 사용 여부 설정

n  수동 설정

n  브라우저 기본 설정

n  프록시 자동 설정: 자바스크립트 실행. Proxy Auto-Configuration 파일에 대한 URI 제공

u  .pac 확장자를 가지며 MIME 타입은 application/x-ns-proxy-autoconfig 이다.

u  URI 접근 시 서버를 계산해 주는 FindProxyForUrl(url,host) 함수 정의

n  Web Proxy AutoDiscovory Protocol: 자동 설정 파일을 가지고 있는 설정 서버(PAC URI)를 찾는 프로토콜

-       네트워크 수정: 네트워크에서 트래픽을 프록시로 유도

-       DNS 네임 스페이스 수정: 대리 프록시가 웹 서버의 IP와 주소를 자신이 직접 사용. DNS 네임 테이블 수동으로 편집하거나 동적 DNS 서버를 이용하여 조정.

-       웹 서버 수정: 웹 서버에서 프록시로 리디렉션 명령 리턴

 

프록시 URI는 서버 URI와 다르다. 클라이언트에서 서버로의 요청 메시지는 스킴, 호스트, 포트번호가 없는 부분 URI를 가진다. 하지만 클라이언트에서 프록시로의 요청은 완전한 URI를 갖는다. 프록시는 서버와 커넥션이 필요하기 때문에 완전한 URI가 필요하다. 가상 호스트의 경우도 마찬가지이다.

프록시에서는 부분 URI도 지원해야 하는데, Host 헤더를 기반으로 완전 URI를 추출하거나, 과거 이력에서 참조하는데, 어떤 방법으로도 완전한 URI를 찾지 못한다면 클라이언트로 에러 메시지를 보낸다.

Via 헤더는 쉼표로 구분된 waypoint 목록으로, 거쳐간 프록시 정보를 담고 있다.

Server 헤더는 원본 서버에 의해 사용되는 소프트웨어를 알려주며, 프록시는 이를 수정하면 안된다.

HTTP/1.1 TRACE 메소드를 사용해서 프록시가 요청 메시지를 수정하는 것을 추적하여 프록시 흐름을 디버깅할 수 있다.


'System Engineering > Network' 카테고리의 다른 글

HTTP - 8. Cache  (0) 2018.07.24
HTTP - 7. Authentication  (0) 2018.07.24
HTTP - 5. Web Server  (0) 2018.07.24
HTTP 4. DNS  (0) 2018.07.24
HTTP - GET, PUT, POST  (0) 2018.07.24

+ Recent posts