Home 5장 HTTP와 연계하는 웹 서버
Post
Cancel

5장 HTTP와 연계하는 웹 서버

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

HTTP/1.1에서는 하나의 HTTP 서버에 여러 개의 웹 사이트를 실행할 수 있다. 이를 위해 ‘가상 호스트’ 라는 기능을 사용하고 있다. 가상 호스트 기능을 사용하면 물리적으로는 서버가 1대지만 가상으로 여러대가 있는 것처럼 설정하는 것이 가능하다.

클라이언트가 서버에 액세스할 때는 호스트 명이나 도메인 명이 자주 사용된다. 이때 DNS는 도메인 명을 IP 주소로 변환하여 액세스한다. 결국 리퀘스트가 서버에 도착해서는 IP 주소를 기준으로 액세스 하는데 이때 1대의 서버 안에 여러개의 도메인이 있는 경우 어느 쪽에 대한 액세스인지 알 수 없기 때문에 리퀘스트를 보낼 때 호스트 명과 도메인 명을 완전히 포함한 URI를 지정하거나, Host 헤더 필드에서 지정해야 한다.

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

  • 프록시 : 서버와 클라이언트의 양쪽 역할을 하는 중계 프로그램, 클라이언트로부터 받은 리퀘스트를 다른 서버에 전송하는 것이다. 사용하는 이유는 캐시를 사용해서 네트워크 대역 등을 효율적으로 사용하는 것과 조직 내에 특정 웹 사이트에 대한 액세스 제한, 액세스 로그를 획득하는 정책을 철저하게 지키려는 목적으로 사용하는 경우도 있다.
    • 캐싱 프록시 : 리스폰스를 중계하는 경우 프록시 서버 상에 리소스 캐시를 보존해 두는 타입의 프록시이다. 따라서 같은 리소스에 리퀘스트가 온 경우 서버로부터 리소스를 획득하는 것이 아니라 캐시를 리스폰스로서 되돌려 주는 것이다.
    • 투명 프록시 : 리퀘스트와 리스폰스를 중계할 때 메시지 변경을 하지 않는 타입의 프록시를 가리킨다.
  • 게이트웨이 : 다른 서버를 중계하는 서버로 클라이언트로부터 수신한 리퀘스트를 리소스를 보유한 서버인 것처럼 수신한다. 동작은 프록시와 매우 유사하나 게이트웨이의 경우에는 다음에 있는 서버가 HTTP 이외의 서비스를 제공하는 서버가 된다. 또 클라이언트와 게이트웨이 사이를 암호화하는 등으로 안전하게 접속함으로써 통신의 안전성을 높이는 역할 등도 한다.
  • 터널 : 두 대의 클라이언트와 서버 사이를 중계하며 접속을 주선하는 중계 프로그램이다. 요구에 따라 다른 서버와의 경로를 확립한다. 이때 클라이언트는 SSL 같은 암호화 통신을 통해 서버와 안전하게 통신을 하기위해 사용
This post is licensed under CC BY 4.0 by the author.

4장 결과를 전달하는 HTTP 상태코드

6장 HTTP 헤더