1. Proxy (프록시) 이란?
  ㅇ 다른 사람을 대신/대리하여 무엇인가를 하는 것 (중개, 仲介 : 두 당사자 간에 일을 주선함)
     - 주로, 1 이상의 네트워크 인터페이스를 갖고, 
     - 응용계층에서, 특정 유형으로 요청된 연결을 다른 연결로 중계하는 역할을 수행
2. 프록시의 위치 및 유형
  ㅇ 클라이언트측과 서버측 간 둘 중 하나에서, 내부 사설망과 외부 인터넷망이 접하는 경계에 위치 
  ㅇ 포워드형 프록시 (Forward Proxy) : 주로, 데이터 수신용으로, 사용자 가까운 쪽에 위치
     - 내부 클라이언트의 요청을 대신하여 외부 서버와 통신
        . 사용 목적 : 클라이언트 보호,익명성 제공, 인터넷 접근 제어 등
        . (인터넷 회선료가 비쌌던 초창기에 주로 사용)
  ㅇ 리버스형 프록시 (Reverse Proxy) : 주로, 데이터 제공용으로, 서버들 가까운 쪽에 위치
     - 외부 클라이언트 요청을 내부(백엔드) 서버로 전달하여, 보안 및 부하 분산 수행
        . 사용 목적 : 내부 서버 보호, 로드 밸런싱, SSL 암호화 처리 등
        . (오늘날 전형적인 형태임)
3. `프록시`,`게이트웨이`의 비교
  ㅇ 프록시 : 동일 프로토콜로 연결
     - 통신 내용 이해할 필요 있음
     - 필요에 따라 내용 수정도 가능
     - 서버 대신 응답 가능
  ㅇ 게이트웨이 : 서로다른 프로토콜 간을 변환시켜주며 연결
     - 통신 내용을 그대로 전달 
     - 내용 수정 불허
     - 클라이언트가 중간에 게이트웨이 존재 여부를 전혀 의식 못하게 함
4. 프록시의 역할
  ㅇ 중계 기능
     - 주로 사용자를 대신/대리하여 서버에 접근 함
  ㅇ 캐시 기능
     - 자주 요구된 정보에 대한 일시적 저장, 빠른 응답, 병목 트래픽 및 대역폭 감소
  ㅇ 보안 기능
     - 네트워크 외부에서는 실제 사용자,서버의 위치를 감추는 등의 효과를 볼 수 있음
        . 특히, IP주소의 익명성(숨김) 가능
  ㅇ 방화벽으로써 활용 가능
     - 잘 설정된 Proxy는 효율을 향상시키는 것과 동시에 좋은 Firewall 이 될 수 있음
        . 여기서, 프록시 서버는 방화벽의 호스트에서 실행되는 전문화된 어플리케이션 또는
          서버 프로그램으로서, 방화벽의 베스천 호스트에서 설치 되어 운용됨
  ㅇ IP 주소의 절약 기능
     - 통상 프록시 서버는, 외부 네트워크에 접속되는 유일한 장비이므로,
     - 이 서버에서 만 유일한 공인 IP 주소가 필요
  ㅇ 부적절한 사이트에의 접근 방지 등 
5. 프록시의 형태
  ㅇ 공유 프록시 및 개인 프록시
     - 개인 프록시 : 보통, 클라이언트 컴퓨터 내에서 직접 실행되는 개인 전용 프록시 형태
        . 웹브라우저 내장 기능 : 대부분의 웹브라우저들이 프록시를 자동/수동으로 설정 가능
        . 웹 프록시 툴 : 웹브라우저와 함께 동작하는 툴
           .. 例) Burp Suite (웹 취약점 점검 및 해킹 툴)
     - 공유 프록시 : 대부분의 경우, 여러 클라이언트들 또는 서버들을 대신하는 중앙 집중형
  ㅇ 공유 프록시 서버 형태 : Proxy Server (프록시 서버) 
     - 네트워크적인 관점에서 다수를 대신하여 일을 할 수 있는 서버 
     - 例)
        . 웹 프록시 서버  :  HTTP 프록시 서버(HTTP Proxy Server)
           .. 이를 웹 캐시(Web Cache)라고도 함
        . VoIP 프록시 서버  :  호(呼) 접속 및 교환 중개  ☞ SIP 구성요소 참조
  ㅇ 프록시 서버의 웹 응용
     - 명칭 : `웹 프록시 서버(Web Proxy Server)` 또는 `HTTP Proxy Server` 또는 `Web Cache`
     - 원천 웹 서버(origin web server)를 대신하여 HTTP 요청을 처리하는 저장가능 서버
           - 이중적 역할
        . 클라이언트와 상호작용할 때는 서버 처럼 동작
        . 원천 웹서버와 상호작용할 때는 클라이언트 처럼 동작
6. 프록시에 보안 채널 형성
  ※ ☞ SOCKS (Socket Secure, "SOCKetS") 참조
     - 이중적 역할
        . 클라이언트와 상호작용할 때는 서버 처럼 동작
        . 원천 웹서버와 상호작용할 때는 클라이언트 처럼 동작
6. 프록시에 보안 채널 형성
  ※ ☞ SOCKS (Socket Secure, "SOCKetS") 참조