본문 바로가기
개인공부/Http Network Basic

5장 - HTTP와 연계하는 웹 서버

by 하고싶은건많은놈 2023. 2. 28.

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

HTTP/1.1에서는 하나의 HTTP 서버에 여러개의 웹 사이트를 실행할 수 있음

이 때 가상 호스트(Virtual Host) 기능이 사용되며, 물리적으로 서버가 한대지만 가상으로 여러대가 있는 것처럼 설정하는 것이 가능함

 

클라이언트가 서버에 엑세스할 때 호스트명이나 도메인명이 자주 사용되는데, 이는 DNS에 의해 IP 주소로 변환된 후 엑세스됨

따라서 한대의 서버 안에 여러개의 도메인이 있을 경우 어느쪽에 대한 엑세스인지 알 수 없음

그렇기 때문에 가상 호스트 시스템이 가동중인 경우 HTTP 리퀘스트에 호스트명과 도메인명을 완전하게 포함한 URI를 지정하거나, Host 헤더 필드에 지정해야함


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

HTTP는 클라이언트와 서버 이외에 통신을 중계하는 프로그램과 서버를 연계하는 것도 가능

해당 프로그램과 서버는 다른 서버에 리퀘스트를 중계하고, 그 서버로부터 받은 리스폰스를 클라이언트에 반환하는 역할을 담당

  • 프록시
    서버와 클라이언트 양쪽 역할을 하는 중계 프로그램으로 클라이언트의 리퀘스트를 서버에 전송, 서버의 리스폰스를 클라이언트에 전달
    이 때 리소스 본체를 가진 서버를 오리진 서버(Origin Server)라고 부르며, 클라이언트로부터 받은 리퀘스트 URI는 변경되지 않음
    프록시 서버를 여러 대 경유하는 것도 가능하지만 이 경우 Via 헤더 필드에 경유한 호스트 정보를 추가해야함
    프록시는 캐시를 사용하여 네트워크 대역을 효율적으로 사용하기 위해, 특정 웹 사이트에 대한 엑세스를 제한하기 위해, 엑세스 로그를 획득하는 정책을 철저하게 지키기 위해 사용
    • 캐싱 프록시(Cashing Proxy)
      프록시 서버 상에 리소스 캐시를 보존, 프록시에 다시 같은 리소스의 리퀘스트가 온 경우 오리진 서버로부터 리소스를 획득하는 것이 아닌 캐시를 리스폰스로서 반환함
    • 투명 프록시(Transparent Proxy)
      프록시로 중계시 메시지 변경을 하지 않음
      반대로 메시지에 변경을 가할경우 비투과 프록시라고 부름
  • 게이트웨이
    다른 서버를 중계하는 서버, 클라이언트로부터 수신한 리퀘스트를 리소스를 보유한 서버인 것처럼 수신
    프록시와 유사한 동작을 하며, 클라이언트와 게이트웨이 사이를 암호화하는 등으로 통신의 안전성을 높임
  • 터널
    서로 떨어진 두 대의 클라이언트와 서버 사이를 중계하며 접속을 주선
    요구에 따라 다른 서버와의 통신 경로를 확립하며, 이 때 클라이언트는 SSL같은 암호화 통신을 통해 서버와 안전하게 통신함
    터널 자체는 HTTP 리퀘스트를 해석하지 않고 서버에 중계하며, 양쪽 끝의 접속이 끊어질 때 종료됨

5.3 리소스를 보관하는 캐시

캐시(Cache) : 프록시 서버와 클라이언트의 로컬 디스크에 보관된 리소스의 사본

캐시 사용시 리소스를 가진 서버로의 엑세스를 줄여 통신량과 통신 시간을 절약할 수 있음

캐시 서버는 프록시 서버의 하나인 캐싱 프록시로 분류됨

 

단, 캐시되어 있는 리소스의 유효성을 보장하기 위해 클라이언트의 요구나 캐시의 유효 기간 등에 의해 오리진 서버에 리소스의 유효성을 확인하거나 새로운 리소스를 다시 획득하는 경우가 있음

클라이언트의 브라우저에서도 캐시를 가질 수 있으며, 이를 인터넷 임시 파일이라고 부름

브라우저의 캐시 역시 유효성을 확인하는 경우가 존재함

댓글