
인터넷에 하나의 IP 주소가 있지만 웹 이름이 많은 경우 어떻게 이를 가질 수 있습니까? 예를 들어, 호스팅 회사가 공유 IP를 가지고 있지만 나는 (해당 상자에 있는 다른 모든 사람과 함께) 무제한의 도메인 이름을 얻을 수 있습니다.
인터넷에 상자가 있지만 누군가가 다른 www를 입력하면 다른 웹사이트를 보유하는 다른 컴퓨터를 가리키고 싶습니다(다른 상자 바로 옆에 있음). 그게 전부 하위 도메인인가요? 감사합니다.
나는 호스팅 회사입니다
답변1
이는 HTTP 1.1 프로토콜의 일부입니다.
특히 HTTP 1.1 프로토콜에는 클라이언트가 액세스를 시도하는 특정 서버의 웹 사이트를 지정하는 "host:"라는 헤더가 포함되어 있습니다.
따라서 snoopy.net과 woodstock.org가 모두 192.0.32.10을 공유하고 브라우저가 http://snoopy.net/doghouse
특정 http 요청에서 콘텐츠를 가져오려고 하면 다음과 같습니다.
GET /doghouse HTTP/1.1
Host: snoopy.net
원하는 URL이 http://woodstock.org/seeds
요청인 경우 다음과 같습니다.
GET /seeds HTTP/1.1
Host: woodstock.org
두 경우 모두 컴퓨터와 서버의 포트 80 사이에 TCP 소켓이 있습니다. 서버는 Host 헤더를 기반으로 /var/www/snoopy.net 또는 /var/www/woodstock.org/에서 콘텐츠를 가져오는 것을 알 수 있습니다.
쿠키와 브라우저 유형 및 허용된 콘텐츠와 같은 기타 항목에 대한 다른 헤더가 있을 수 있지만 특히 "호스트" 헤더는 웹 서버가 원하는 가상 웹 사이트를 알 수 있도록 해줍니다.
에 더 많은 것이 있습니다RFC2616.
https 사이트도 마찬가지입니다.~ 해야 하다** 자체 IP 주소가 있어야 합니다. SSL 키 교환 및 인증서 확인은 http 트랜잭션 전에 발생하므로 http 서버는 "woodstock.org" 또는 "snoopy.net"에 대한 인증서를 제공하는 것을 알 수 없습니다. 192.0.32.10의 포트 443에서 https 연결을 수신합니다.
편집하다
**댓글에중력TLS 사양에는 사용자가 어떤 웹 사이트에 액세스하려고 하는지 서버가 알 수 있도록 하는 SSL 확장이 있으며 대부분의 최신 웹 브라우저에는 이러한 확장이 있다는 점을 지적합니다.~ 해야 하다좀 너무 강해요.
답변2
모든 최신 브라우저가 요청과 함께 보내는 "Host:" 헤더라는 것이 있습니다.
Firefox가 이 페이지에 대해 보내는 실제 요청은 다음과 같습니다.
호스트: superuser.com 사용자 에이전트: Mozilla/5.0(Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7(.NET CLR 3.5.30729) 수락: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 승인-인코딩: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 연결 유지: 300 연결: 연결 유지
보시다시피,
호스트: superuser.com비트는 문제의 웹사이트를 식별합니다.
IIS와 Apache에서는 특정 IP/호스트 조합의 요청만 수락하는 가상 웹 사이트를 구성할 수 있습니다.
특정 문제에 관해서는 특정 호스팅 회사에서 구성을 요청하는 방법을 읽어야 합니다.
답변3
답변4
간단히 말해서 ...
하나 - 다양한 도메인의 DNS 항목이 모두 상자를 가리키도록 설정합니다.
두 번째 - 다른 사람들이 설명한 대로 요청된 호스트 이름과 일치하도록 웹 서버(어떤 서버인지는 밝히지 않음)를 설정합니다.
이렇게 하면 모든 도메인에 대한 모든 요청이 동일한 시스템으로 이동하고 구성이 요청된 도메인을 가져와 해당 사이트의 콘텐츠가 포함된 올바른 폴더로 라우팅합니다.