Skip to content

Latest commit

 

History

History
88 lines (70 loc) · 4.48 KB

File metadata and controls

88 lines (70 loc) · 4.48 KB

6장 - 프락시

6.1 웹 중개자

클라이언트 입장에서 트랜잭션을 수행하는 중개인. 웹 서버인 동시에 웹 클라이언트 역할을 수행

  • 공용 프락시: 여러 클라이언트가 함께 사용. 대부분의 프락시에 해당.
  • 개인 프락시: 하나의 클라이언트가 독점적으로 사용.
  • 프락시와 게이트웨이
    • 프락시는 같은 프로토콜을 사용하는 둘 이상의 애플리케이션 연결
    • 게이트웨이는 서로 다른 프로토콜을 사용하는 둘 이상을 연결
    • 하지만, 실질적으로 차이는 모호함

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

보안 개선, 성능 높임, 비용 절약

  • 어린이 필터 (성인용 콘텐츠 차단): 서버의 응답을 받지 않음.
  • 문서 접근 제어자: 단일한 접근 제어 전략을 구현. 감사 추적을 하기 위해 사용
  • 보안 방화벽
  • 웹 캐시: 인기 있는 문서의 로컬 사본을 관리
  • 대리 프락시(리버스 프락시, 서버 가속기): 웹 서버인 것처럼 위장. 공용 콘텐츠에 대한 느린 웹 서버의 성능을 개선하기 위해 사용됨.
  • 콘텐츠 라우터: 인터넷 트래픽 조건과 콘텐츠 종류에 따라 요청을 특정 웹 서버로 유도
  • 트랜스코더
    • 트랜스 코딩: 클라이언트에게 전달하기 전에 데이터 표현 방식을 자연스럽게 변환하는 것
  • 익명화 프락시: HTTP 메시지에서 신원을 식별할 수 있는 특성들을 제거

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

  • 프락시 서버 배치
    • 출구 프락시: 로컬 네트워크의 출구에 박아 넣을 수 있음 .
    • 접근 프락시: ISP 접근 지점에 위치
    • 대리 프락시: 네트워크의 가장 끝에 있는 웹 서버들의 바로 앞에 위치
    • 네트워크 교환 프락시: 네트워크 사이의 인터넷 피어링 교환 지
  • 프락시 계층 콘텐츠 라우팅
    • 정적
    • 동적 부모 선택
      • 부하 균형, 지리적 인접성에 근거한 라우팅, 프로토콜/타입 라우팅, 유료 서비스 가입자를 위한 라우팅
  • 트래픽 처리
    • 클라이언트를 수정한다: 클라이언트에서 수동 혹은 자동 프락시 설정. 의도적으로 원 서버가 아닌 프락시로 요청을 보냄
    • 네트워크를 수정한다: 인터셉트 프락시. 네트워크 인프라를 가로채서 웹 트래픽을 프락시로 가도록 함
    • DNS 이름공간을 수정한다
    • 웹 서버를 수정한다: 서버에서 클라이언트 요청을 프락시로 리다이렉트

6.4 클라이언트 프락시 설정

  • 수동 설정
  • 브라우저 기본 설정
  • 프락시 자동 설정 (PAC)
    • 프락시 설정을 상황에 맞게 계산해주는 작은 자바스크립트 프로그램
  • WPAD 프락시 발견 (웹 프락시 자동 발견 프로토콜)
    • 브라우저에게 알맞은 PAC 파일을 자동으로 찾아주는 알고리즘

6.5 프락시 요청의 미묘한 특징들

  • 프락시 URI는 서버 URI와 다르다.
    • 클라이언트가 프락시 대신 서버로 요청을 보내면 요청의 URI가 달라진다.
    • 클라이언트가 프락시 사용하지 않도록 설정 → 부분 URI
    • 클라이언트가 프락시를 사용하도록 설정 → 완전한 URI
  • 인터셉트 프락시는 부분 URI를 받는다.
  • 프락시는 프락시 요청과 서버 요청을 모두 다룰 수 있다.
  • 전송 중 URI 변경을 거의 하지 않음. (가능한 관대하도록)
  • URI 클라이언트 자동확장과 호스트 명 분석
  • 프락시 없는 URI 분석
    • 브라우저는 유효한 호스트 명이 발견될 때까지 다양한 호스트명의 가능성을 검색함
  • 명시적인 프락시를 사용할 때의 URI 분석
    • 부분 호스트 명을 자동확장하지 않음.
  • 인터셉트 프락시를 이용한 URI 분석
    • 장애 허용

6.6 메시지 추적

  • Via 헤더: 메시지가 지나는 각 중간 노드의 정보를 나열
    • 쉼표로 구분된 경유지 목록
    • 개인정보 악용될 수 있음 → 호스트 명을 가명으로 교체
  • trace 메서드
    • max-forwards 지원

6.7 프락시 인증

사용자가 유효한 접근 권한 자격을 프락시에 제출하지 않는 한 콘텐츠에 대한 요청을 차단

6.8 프락시 상호 운용성

  • 지원하지 않는 헤더와 메서드 다루기
    • 이해할 수 없는 헤더 필드는 그대로 전달.
    • 같은 이름의 헤더 필드가 여러 개인 경우 상대적인 순서 유지.
  • OPTIONS: 어떤 기능을 지원하는지 알아보기