[HTTP] Proxy

o·2021년 2월 3일
0
post-thumbnail

프락시 서버

  • 클라이언트와 서버 사이에 위치하여 통신을 대리 수행하는 서버
  • HTTP 메시지를 정리하는 중개인 역할

프락시와 게이트웨이

  • 프락시는 같은 프로토콜을 사용하는 둘 이상의 애플리케이션을 연결
  • 게이트웨이는 서로 다른 프로토콜을 사용하는 둘 이상을 연결
    • 클라이언트와 서버가 서로 다른 프로토콜로 말해도 서로 간의 트랜잭션을 완료할 수 있도록 해주는 프로토콜 변환기처럼 동작함
  • 실제로 차이는 모호함
    • 프락시는 브라우저와 서버는 다른 버전의 HTTP를 구현하기 문에 약간의 프로토콜 변환을 하기도

프락시 서버의 역할

  • 보안을 개선, 성능 향상, 비용 절약
  • 트래픽을 감시하고 수정할 수 있음

1. 캐시

  • 캐시를 통해 자원을 저장하고 빠르게 응답
  • 네트워크 비용 감소, 응답 속도 향상

2. 필터링

  • 부적절한 콘텐츠 차단
  • 프락시를 통한 요청/응답 로깅

3. 트랜스코더

  • 트랜스 코딩: 데이터의 표현 방식을 자연스럽게 변환하는 것
  • 데이터 압축, 언어 변환 등
  • 네트워크 비용 감소, 원 서버의 역할 감소

4. 익명화(Anonymizer)

  • HTTP 메시지에서 신원 식별을 할 수 있는 특성들을 제거
  • 개인 정보 보호와 익명성 보장

Forward Proxy

  • 일반적인 프락시
    • "프락시 서버 설정 ..."
    • "인터넷 속도 향상을 위해 컴퓨터에서 프락시 설정..."
    • "외국에서 접속하는 것 처럼 테스트하기 위해..."
    • "개인정보 빼돌린 해커가 IP 추적 방지하기 위해..."
  • 클라이언트와 인터넷 사이에서 흐름을 처리

Forward Proxy의 특징

  • 캐싱
    • 전송 시간 절약, 다운로드 속도를 개선
    • 불필요한 외부 요청 감소로 네트워크 병목 현상 방지
  • 익명성
    • 클라이언트가 보낸 요청을 감춤
    • 프락시가 대신 요청을 보내서 서버에서 누가 보냈는지 알지 못하게 함

Reverse Proxy

  • 인터넷과 서버 사이에 위치. 대리 프락시라고도 함
  • 보통 웹 서버의 이름과 IP 주소로 스스로를 가장함
  • 서버 응답을 대신 클라이언트에게 보냄

Reverse Proxy의 특징

  • 캐싱
    • 빠른 웹 서버 캐시를 느린 웹 서버 앞에 두어 성능 개선
  • 보안
    • 웹 서버 이름과 IP로 스스로를 가장하여 서버 정보를 클라언트로부터 숨김
    • 클라이언트 입장에서 리버스 프락시를 실제 서버라고 생각하고 요청함
    • 실제 서버의 IP가 노출되지 않음
  • 로드 밸런싱
    • 여러 대의 서버가 일을 처리할 수 있도록 요청을 나눠줌
    • 해야할 일을 나눠 서버의 부하를 분산시킴

클라이언트 프락시 설정


Via 헤더

  • 메시지가 지나는 각 중간 노드의 정보를 나열하여 메시지 흐름을 추적
  • Via: 1.1 proxy-62.irenes-isp.net, 1.0 cache.joes-hardware.com
  • 응답 Via 헤더는 거의 언제나 요청 Via 헤더와 반대다.

참고: HTTP 완벽 가이드

profile
⟡ Frontend Engineer

0개의 댓글