5. Web Server

Sangmin Yoon·2021년 7월 1일
0

HTTP & Network Basics

목록 보기
5/7

1. Virtual Host

  • HTTP/1.1에서는 하나의 HTTP 서버에서 여러 개의 웹 사이트를 실행할 수 있음.
  • Virtual Host 기능을 사용하면 물리적으로는 서버가 1대이지만 가상으로 여러 대가 있는 것처럼 설정할 수 있음.
  • 같은 IP 주소에서 다른 호스트명과 도메인 명을 가진 여러 개의 웹 사이트가 실행되고 있는 Virtual Host 시스템에서는, HTTP Request에 호스트명과 도메인 명을 완전하게 포함한 URI를 지정하거나 반드시 Host 헤더 필드에서 지정해야 함.

2. Proxy, Gateway, Tunnel

  • HTTP는 클라이언트와 서버 이외에 프록시, 게이트웨이, 터널과 같이 통신을 중계하는 프로그램과 서버를 연계하는 것도 가능하다.

1) Proxy

  • 클라이언트로부터 받은 리퀘스트를 오리진 서버로 보냄. 오리진 서버에서 받은 리스폰스는 프록시 서버를 경유해서 클라이언트로 돌아옴.
  • 프록시 서버 여러 대 경유하는 것도 가능하다. 이 때 Via 헤더 필드에 경유한 호스트 정보를 추가해야 한다.
  • 프록시 서버 쓰는 이유 : 캐시 사용하기 위해. 특정 리소스에 대한 액세스 제한. 액세스 로그 획득.
  • 캐싱 프록시: 리스폰스 중계할 때 프록시 서버 상에 리소스 캐시를 보존해둠.
  • 투명 프로시: 리퀘스트와 리스폰스 중계할 때 메시지 변경을 하지 않는 프록시.

2) Gateway

  • 게이트웨이의 동작은 프록시와 매우 유사.
  • 단, 클라이언트가 HTTP 리퀘스트/리스폰스를 게이트웨이와 주고받으면 게이트웨이는 HTTP 이외의 서버와 HTTP 이외의 프로토콜로 통신할 수 있다.

3) Tunnel

  • 터널은 요구에 따라 다른 서버와의 통신 경로를 확립한다. 터널 자체는 HTTP 리퀘스트를 해석하지 않는다.

3. Cache

  • 캐시가 있다 하더라도 캐시 유효 기간에 의해서 유효성 검사가 이루어진다.
  • 클라이언트에게도 캐시가 있다. 이를 인터넷 임시 파일이라고 한다.

0개의 댓글