You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"GET/joe/index.html"
"GET/mary/index.html" 이렇게 인식 가능
그러나 불필요한 접두어를 사용하기 때문에 혼란스러워서 사용 안 함.
포트번호를 통한 가상 호스팅
각각 다른 포트번호를 할당하는 방법
사용자는 URL에 비표준 포트(사용자 지정 포트)를 쓰지 않고 리소스를 찾기 원하기 때문에 사용 안 함.
IP 주소를 통한 가상 호스팅
가상 웹 사이트마다 유일한 IP 주소를 할당하는 방법.
모든 가상 서버의 IP 주소는 같은 공용 서버에 연결되어 있다.
서버는 HTTP 커넥션의 목적지 IP 주소를 통해 클라이언트가 어떤 웹 사이트에 접근했는지 명확히 알 수 있다.
그러나 연결할 수 있는 IP 개수 제한이 있다.
수천개의 IP 주소를 관리하는데 비용이 크다.
Host 헤더를 통한 가상 호스팅
브라우저 대부분이 URL의 경로 컴포넌트만 서버에 전달하므로, 중요한 가상 호스트 명 정보는 받지 못한다.
그래서 모든 요청에 호스트 명을 Host 확장 헤더에 기술해서 전달하도록 했다.
Host 헤더는 HTTP/1.0+에서 처음 소개가 되었고 HTTP/1.1 명세에 추가되었다.
18.2.3 HTTP/1.1 Host 헤더
Host 헤더에 포트가 기술되어 있지 않으면, 해당 스킴의 기본 포트를 사용한다.
URL에 IP 주소가 있으면, Host 헤더는 같은 주소를 포함해야 한다.
URL에 호스트 명이 기술되어 있으면, Host 헤더는 같은 호스트 명을 포함해야 한다.
URL에 호스트 명이 기술되어 있으면, Host 헤더는 URL의 호스트명이 가리키는 IP 주소를 포함해서는 안 된다.
클라이언트가 특정 프락시 서버를 사용한다면, Host 헤더에 프락시 서버가 아닌 원 서버의 호스트명과 포트를 기술해야 한다.
웹 클라이언트는 모든 요청 메시지에 Host 헤더를 기술해야 한다. HTTP 요청이 Host 헤더를 포함하지 않으면 에러를 응답이 반환된다.
Host 헤더 해석하기
가상 호스팅을 사용하지 않거나 지원하지 않는 서버에서는 리소스가 달라지기 때문에 Host 헤더 값을 무시할 것이다.
만약 Host 헤더에 값이 있다면, 다음의 절차대로 값을 얻어낸다.
HTTP 요청 메시지에 전체 URL이 기술되어 있다면, Host 헤더에 값을 무시하고 전체 URL을 사용한다.
HTTP 요청 메시지에 있는 URL에 호스트명이 기술되어 있지 않다면 Host 헤더에서 가져온다.
호스트명을 가져올 수 없다면 400 Bad Request 에러를 발생.
18.3 안정적인 웹 사이트 만들기
서버 다운
트래픽 폭증
네트워크 장애, 손실
18.3.1 미러링 된 서버 팜
서버 팜은 서로 대신할 수 있고 식별할 수 있게 설정된 웹 서버들의 집합이다.
미러링 된 서버는 원본 콘텐츠를 갖는 마스터 원 서버와 복제 원서버로 구성된다.
네트워크 스위치를 통해 분산 요청을 보내게 된다.
부하의 분산은 HTTP 리다이렉션방식과 DNS 리다이렉션 방식이 있다.
Is AWS a server farm?
AWS services are delivered to customers via a network of AWS server farms located throughout the world.
Where are Amazon server farms?
Amazon Web Services (AWS) operates data centers in the following regions: US East (Ohio), US West (Oregon), US West (Northern California), and US East (Northern Virginia)
HTTP 리다이렉션
콘텐츠에 대한 URL은 마스터 서버의 IP를 가리키고, 마스터 서버는 요청을 받은 즉시 복제 서버로 리다이렉트 한다.
DNS 리다이렉션
콘텐츠의 URL은 네 개의 IP 주소를 가리킬 수 있고, DNS 서버는 클라이언트에게 전송할 IP 주소를 선택할 수 있다.
18장 웹호스팅
알아보기
가상 호스팅
하는 방법. 그리고 그것이 HTTP에 끼치는 영향18.1 호스팅 서비스
18.1.1 간단한 예 : 전용 호스팅
18.2 가상 호스팅
가상 호스팅
을 사용했다.가상 호스팅
이란 서버 한 대에서 여러 사람들에게 동시에 호스팅하는 것이다. (실제로는 하나의 서버가 아니라서버팜
이라 불리는 서버 그룹들이 수백개, 수천개의 웹사이트를 호스팅함)18.2.1 호스트 정보가 없는 가상 서버 요청
HTTP/1.0
에는 공용 웹 서버가 호스팅하고 있는 가상 웹 사이트에 누가 접근하고 있는지 식별하는 기능이 없다.GET/index.html
이라 요청을 해서, 호스팅된 여러 웹 중 어떤 것을 원하는지 명확히 알 수 없다.18.2.2 가상 호스팅 동작하게 하기
호스트 정보
를 HTTP 요청 명세에 넣지 않은 것은, 각 웹 서버가 정확히 한 웹 사이트만 호스팅할 것이라고 잘못 예측한 HTTP 명세의 실수였다(가상 호스팅을 고려하지 않은 것).URL 경로를 통한 가상 호스팅
포트번호를 통한 가상 호스팅
IP 주소를 통한 가상 호스팅
Host 헤더를 통한 가상 호스팅
호스트 명
정보는 받지 못한다.18.2.3 HTTP/1.1 Host 헤더
Host 헤더 해석하기
400 Bad Request
에러를 발생.18.3 안정적인 웹 사이트 만들기
18.3.1 미러링 된 서버 팜
HTTP 리다이렉션
DNS 리다이렉션
18.3.2 콘텐츠 분산 네트워크
18.3.3 CDN의 대리 캐시
18.3.4 CDN의 프락시 캐시
The text was updated successfully, but these errors were encountered: