URL 경로를 통한 가상 호스팅 - 공용 서버에 있는 각 가상 사이트에 서로 다른 URL 경로를 할당해서 각각을 강제로 구분할 수 있다.
포트번호를 통한 가상 호스팅 - 경로 명을 변경하는 대신, 웹 서버에 각각 다른 포트번호를 할당할 수 있다.
ip주소를 통한 가상 호스팅 - 각 가상 웹 사이트에 유일한 ip주소를 한 개 이상 부여한다
HOST 헤더를 통한 가상 호스팅 - 브라우저와 서버 개발자들은서버가 원 호스트명을 받아 볼수있게 HTTP를 확장했다. 모든 요청에 호스트명(그리고 포트)을 Host 확장 헤더에 기술해서 전달한다.
HTTP/1.1 Host 헤더
문법과 사용 방법
Host = "Host" ":" 호스트[":"포트]
Host 헤더의 누락 - 아직 사용되고 있는 몇몇 낡은 브라우저들은 Host 헤더를 보내지 않는다.
Host 헤더 해석하기 - 모든 웹 서버는 HTTP/1.1을 통해 오는 리소스를 결정하려면 다음과 같은 규칙을 사용해야 한다
HTTP 요청 메시지에 전체 URL이 기술되어 있으면, Host 헤더에 있는 값은 무시하고 URL을 사용한다
HTTP 요청 메시지에 있는 URL 에 호스트 명이 기술되어 있지 않고 요청에 Host헤더가 있으면, 호스트 명과 포트를 Host 헤더에서 가져온다.
1단계나 2단계에서 호스트를 결정할 수 없으면 클라이언트에 400 Bad Request 응답을 반환한다.
HTTP 헤더와 프락시 - 프락시를 사용하도록 구성할 때 버전이 오래된 애플이나 포인트캐스트 클라이언트는 실수로 원 서버의 이름이 아닌 프락시의 이름을 Host 헤더에 담아 전송한다
안정적인 웹 사이트 만들기
미러링 된 서버 팜
서버 팜은 서로 대신할 수 잇고 식별할 수 있게 설정된 웹 서버들의 집합니다. 서버팜의 서버에 잇는 콘텐츠들은 한 곳에 문제가 생기면 다른 한 곳에서 대신 전달할 수 있게 미러링할 수 있다.
미러링된 서버 팜에서, 마스터 원 서버는 복제 원 서버에 콘텐츠를 보낼 책임이 있다.
미러링 된 웹 서버에는 다른 위치에 있는 콘텐츠와 정확히 같은 복제본이 있다.
마스터 서버는 클라이언트에게 콘텐츠를 제공하면서 복제 서버들에게 콘텐츠를 퍼트리는 일을 한다.
HTTP 리다이렉션 - 콘텐츠에 대한 URL은 마스터 서버의 IP를 가리키고, 마스터 서버는 요청을 받는 즉시 복제 서버로 리다이렉트 시킨다
DNS 리다이렉션 - 콘텐츠의 URL은 네 개의 IP주소를 가리킬 수 있고, DNS 서버는 클라이언트에게 전송할 IP주소를 선택할 수 있다.
콘텐츠 분산 네트워크
콘텐츠 분산 네트워크는 특정 콘텐츠의 분산을 목적으로 하는 단순한 네트워크이다. 네트워크의 노드는 서버, 대리서버, 혹은 프락시 서버가 될 수 있다.
CDN의 대리 캐시
대리 캐시는 복제 원 서버를 대신해 사용될 수 있다.
대리서버는 리버스 프락시라고도 불리며, 웹 서버처럼 콘텐츠에 대한 요청을 받는다
대리 서버는 보통 수요에 따라서 동작한다
대리 서버는 원 서버의 전체 콘텐츠를 복사하지 않는다
CDN이 대리 서버보다 캐시를 계층화하기 더 어렵다
CDN의 프락시 캐시
프락시 캐시는 어떤 웹 서버 요청이든지 다 받을 수 있다.
프락시 캐시의 콘텐츠는 요청이 있을 때만 저장될 것이고 원본 서버 콘텐츠를 정확히 복제한다는 보장이 없다
레이어2 혹은 레이어3 장비가 중간에서 웹 트래픽을 가로채 처리하기도 한다
가로채기 설정은, 클라이언트와 서버 사이의 모든 HTTP 요청이 물리적으로 캐시를 거치게 네트워크 설정을 할 수 있는지에 따라 달라진다.