ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP 완벽 가이드 6장] 프락시
    Network 2020. 6. 22. 10:22
    반응형

    프락시는 클라이언트와 서버 사이에 위치하여 그들 사이의 HTTP 메시지를 정리하는 중개인

    이 장에서 배울 것

    • HTTP 프락시와 웹 게이트웨이를 비교하고 HTTP 프락시가 어떻게 배치되는지 설명한다.
    • 프락시가 실제 네트워크에 어떻게 배치되어 있는지, 트래픽이 어떻게 프락시 서버로 가게 되는지 설명한다.
    • 브라우저에서 프락시를 사용하려면 어떻게 설정해야 하는지 설명한다.
    • HTTP 프락시 요청이 서버 요청과 어떻게 다른지, 프락시가 어떻게 브라우저의 동작을 바꾸는지 보여준다.
    • 프락시 서버들을 통과하는 메시지의 경로를, Via 헤더와 TRACE 메서드를 이용해 기록하는 방법을 설명한다.
    • 프락시에 기반한 HTTP 접근 제어를 설명한다.
    • 프락시가 클라이언트와 서버 사이에서 어떻게 상호작용 할 수 있는지 설명한다.

    6.1 웹 중개자

    • 웹 프락시 서버는 클라이언트의 입장에서 트랜잭션을 수행하는 중개인이다.
    • 웹 프락시가 없다면 클라이언트는 서버와 직접 대화한다.
    • 웹 프락시는 서버처럼 메시지를 받거나 클라이언트처럼 메시지를 요청할 수 있다.

    1) 개인 프락시와 공유 프락시

    • 개인 프락시: 하나의 클라이언트가 독점하여 사용
    • 공유 프락시: 여러 클라이언트가 공유하여 사용

    공용 프락시

    • 대부분의 프락시는 공유 프락시이다.
    • 캐시 프락시 서버 같은 프락시 애플리케이션은 사용자들의 공통된 요청에서 이득을 취할 수 있기 때문에 사용자가 많을수록 좋다.

    2) 프락시 대 게이트웨이

    • 프락시: 같은 프로토콜을 사용하는 둘 이상의 애플리케이션을 연결
    • 게이트웨이: 다른 프로토콜을 사용하는 둘 이상의 애플리케이션을 연결
    • 게이트웨이는 클라이언트와 서버가 서로 다른 프로토콜로 통신해도 트랜잭션을 완료할 수 있도록 해주는 프로토콜 변환기처럼 동작한다.

    클라이언트 -> (HTTP 요청) -> 프락시 -> (HTTP 요청) -> 웹 서버
    클라이언트 -> (HTTP 요청) -> 게이트웨이 -> (POP 요청) -> 이메일 서버

    • 브라우저와 서버는 다른 HTTP 버전을 사용하기 때문에, 프락시는 가끔 약간의 프로토콜을 변경할 때도 있다.
    • 상용 프락시 서버는 SSL 보안 프로토콜, SOCKS 방화벽 등 웹 기반 애플리케이션을 지원하기 위해 게이트웨이 기능을 구현한다.

    6.2 왜 프락시를 사용하는가?

    • 프락시 서버는 모든 HTTP 트래픽을 들여다보고 건드릴 수 있기 때문에, 웹 서비스를 구현할 때 트래픽을 감시하고 수정할 수 있다.

    어린이 필터

    • 초등학교의 필터 프락시는 어린이들에게 교육 콘텐츠는 제공하면서 성인 콘텐츠는 차단할 수 있다.

    문서 접근 제어자

    • 클라이언트가 서버에 접근하려고 할 때 비밀번호를 요구한다.

    보안 방화벽

    • 보안을 강화하기 위해 프락시 서버를 사용한다.

    웹 캐시

    • 인기 있는 문서의 로컬 사본을 관리하고 해당 문서에 대한 요청이 오면 빠르게 제공한다.

    대리 프락시

    • 웹 서버인 것처럼 위장한 대리 프락시는 진짜 웹 서버 요청을 받지만 웹 서버와는 달리 요청 받은 콘텐츠의 위치를 찾아내기 위해 다른 서버와 커뮤니케이션을 한다.

    콘텐츠 라우터

    • 인터넷 트래픽 조건과 콘텐츠의 종류에 따라 요청을 특정 웹 서버로 유도하는 콘텐츠 라우터로 동작할 수 있다.

    트랜스코더

    • 콘텐츠를 클라이언트에게 전달하기 전에 본문 포맷을 수정할 수 있다.
    • 크기를 줄이기 위해 자신을 거쳐가는 GIF 이미지를 JPG 이미지로 변환할 수 있다.
    • 이미지의 색 강도를 줄이거나 텍스트 파일을 압축하고, 문서를 외국어로 변환할 수 있다.

    익명화 프락시

    • HTTP 메시지에서 신원을 확인할 수 있는 헤더들(IP, FROM 헤더, REFERER 헤더, 쿠키, URI 세션)을 제거함으로써 익명성을 보장한다.
      1. User-Agent 헤더에서 사용자의 컴퓨터와 OS의 종류를 제거한다.
      2. 사용자의 이메일 주소를 보호하기 위해 From 헤더는 제거된다.
      3. 어떤 사이트를 거쳐 방문 했는지 알 수 없게 하기 위해 Referer 헤더는 제거된다.
      4. 프로필과 신원 정보를 없애기 위해 Cookie 헤더는 제거된다.

    6.3 프락시는 어디에 있는가?

    • 이번 절에서 다룰 내용
      1. 어떻게 프락시가 네트워크에 배치되는가
      2. 어떻게 프락시의 연쇄가 계층을 이루는가
      3. 어떻게 트래픽이 올바르게 프락시를 찾아가는가

    1) 프락시 서버 배치

    • 프락시는 어떻게 사용하느냐에 따라 어디에든 배치할 수 있다. 서버가 배치될 수 있는 방법은 다음과 같다.

    출구(Egress) 프락시

    • 로컬 네트워크와 더 큰 인터넷 사이를 오가는 트래픽을 제어하기 위해 로컬 네트워크의 출구에 프락시를 박아 넣을 수 있다.
    • 회사 밖의 악의적인 해커들의 침입을 막는 방화벽, 초등학교에서 학생들이 부적절한 콘텐츠를 브라우징하는 것을 막기 위해 필터링 출구 프락시를 사용할 수 있다.

    접근(입구) 프락시

    • 고객으로부터의 모든 요청을 종합적으로 처리하기 위해 프락시는 ISP 접근 지점에 위치하기도 한다.

      ISP(Internet Service Provider)란?
      인터넷에 접속하는 수단을 제공하는 주체
      그 주체는 영리를 목적으로 하는 사기업인 경우가 대다수이며, 비영리 공동체가 주체인 경우도 있다.

    • ISP는 사용자들의 다운로드 속도 개선과 인터넷 대역폭 비용을 줄이기 위해 캐시 프락시를 사용한다.

    대리 프락시

    • 대리 프락시는 웹 서버 바로 앞에 위치하여 모든 요청을 처리하고 필요할 때만 웹 서버에게 자원을 요청할 수 있다.
    • 대리 프락시는 일반적으로 웹 서버의 이름과 IP 주소로 스스로를 가장하기 때문에, 모든 요청을 받을 수 있다.

    2) 프락시 계층

    • 프락시 계층에서 프락시 서버들은 부모와 자식 관계를 맺는다.
    • 다음 번 인바운드 프락시를 부모, 아웃바운드 프락시를 자식이라고 부른다.

    프락시 계층 콘텐츠 라우팅

    • 정적인 프락시 계층: 프락시1 -> 프락시2 -> 프락시3
    • 프락시 서버는 메시지를 다양하고 유동적인 프락시 서버와 원 서버에게 보낼 수 있다.
    반응형
Designed by Tistory.