[5장] HTTP와 연계하는 웹 서버

신은지·2021년 10월 10일
0

5.1 1대로 멀티 도메인을 가능하게 하는 가상 호스트

  • HTTP/1.1 : 하나의 HTTP 서버에 여러 개의 웹 사이트를 실행할 수 있다.
  • 가상 호스트 (Virtual Host)
    : 물리적으로 서버가 1대지만, 가상으로 여러대가 있는 것처럼 사용 가능
    : 고객마다 다른 도메인을 가지고 다른 웹 사이트 실행 가능
  • HTTP 리퀘스트 송신 시
    (1) 호스트명과 도메인 명을 완전하게 포함한 URI를 지정
    (2) HOST 헤더 필드에서 지정 해야 한다

5.2 통신을 중계하는 프로그램 : 프록시, 게이트웨이, 터널

HTTP는 클라이언트와 서버 외에 통신을 중계하는 프로그램과 서버를 연계할 수도 있다.

프록시

서버와 클라이언트의 양쪽 역할을 하는 중계 프로그램
클라이언트로부터 받은 리퀘스트를 다른 서버에 전송한다

  • 오리진 서버
    : 리소스 본체를 가진 서버. 오리진 서버에서 돌아온 리스폰스는 프록시 서버를 경유하여 클라이언트에게 돌아간다.

  • 사용 이유
    (1) 캐시를 이용해 네트워크 대역을 효율적으로 사용하기 위함
    (2) 조직 내 특정 웹 사이트에 대한 액세스를 제한하기 위함
    (3) 액세스 로그를 획득하는 정책을 지키기 위함

  • 사용 방법
    (1) 캐시 여부로 구분
    (2) 메시지 변경 여부로 구분

  • 종류
    (1) 캐싱 프록시 (Cashing Proxy)
    : 프록시로 리스폰스 중계할 때 프록시 서버 상에 리소스 캐시를 보존하는 타입의 프록시
    (2) 투명 프록시 (Transparent Proxy)
    : 프록시로 리퀘스트-리스폰스 중계할 때 메시지 변경을 하지 않는 타입
    : 반대로 변경하는 타입을 비투과 프록시라고 한다.

게이트웨이

다른 서버를 중계하는 서버

  • 클라이언트와 게이트웨이 사이를 암호화하는 등, 통신의 안정성을 높인다.
  • DB에 접속해 SQL 쿼리를 사용해 데이터를 얻는 등에 사용 가능

터널

서로 떨어진 두 대의 클라이언트와 서버 사이를 중계하며 접속을 주선하는 중계 프로그램

  • 요구에 따라 다른 서버와의 통신 경로를 확립
    : 클라이언트는 SSL같은 암호화를 통해 서버와 안전하게 통신하기 위해 터널을 사용한다.
  • 터널은 통신 중인 양쪽 끝의 접속이 끊어질 때 종료된다.

5.3 리소스를 보관하는 캐시

  • 캐시 (Cache)
    : 프록시 서버와 클라이언트의 로컬 디스크에 보관된 리소스의 사본을 가리킨다.
    : 통신량과 통신 시간을 절약할 수 있다.

  • 캐시 서버
    : 프록시 서버의 일종 = 캐싱 프록시
    : 프록시가 리스폰스 중계할 때 프록시 서버 상의 리소스 사본을 보존한다
    : 캐시를 이용함으로써 서버는 같은 리퀘스트를 매번 처리하지 않아도 된다.

  • 캐시의 유효기간
    : 캐시되어 있는 리소스에는 유효성이 있다
    : 클라이언트의 요구나 캐시 유효 기간 등에 의해 오리진 서버의 유효성 확인, 새로운 리소스 획득이 필요하다

  • 클라이언트 측의 캐시
    : Ex. 인터넷 익스플로러의 인터넷 임시 파일
    : 브라우저가 유효한 캐시를 가진 경우 - 같은 리소스의 액세스는 서버가 아닌 로컬 디스크로부터 불러온다

    마찬가질로 리소스가 오래된 것으로 판단되는 경우
    : 오리진 서버에 리소스 유효성 확인, 새로운 리소스 획득 필요

profile
호그와트 장학생

0개의 댓글