2011-11-26 2 views
1

소켓을 배우기 시작했는데 요청에서 호스트 이름을 지정해야하는 이유를 파악하려고합니다. "www.google.com"에 이미 연결되어있는 경우 요청에 "호스트 : www.google.com \ r \ n"의 요점은 무엇입니까? 서버가 이미 자신의 이름을 알고 있지 않습니까?HTTP : 왜 호스트 이름을 지정해야합니까?

+1

이것은 실제로 winsock이 아니라 HTTP 프로토콜입니다. –

답변

4

때때로 서버는 호스트 이름을 알고 있지만 항상 1 : 1 관계는 아닙니다. 많은 DNS 호스트 이름이 모두 같은 IP를 가리킬 수 있으므로 1 개의 IP에 여러 개의 DNS 호스트 이름이있을 수 있습니다. 또한 단일 DNS 호스트 이름을 여러 IP 주소에 매핑 할 수 있지만이 질문에서 덜 중요합니다.

HTTP 요청의 행은 웹 서버가 요청한 호스트 이름을 알고 그. 이렇게하면 IP 주소의 한 시스템이 많은 도메인을 지원할 수 있습니다.

예를 들어 웹 서버가 Host: foo.com으로 표시되면 하나의 웹 사이트를 제공 할 수 있지만 Host: bar.com은 완전히 다른 결과를 반환 할 수 있습니다. 이 정보로 웹 서버가 사용할 수있는 다른 데이터는 없으며이를 알리기 위해 웹 클라이언트에 의존합니다.

2

주어진 서버는 다양한 DNS 이름을 가질 수 있습니다. 예를 들어 공유 호스팅 사이트를 생각해보십시오.

관련 문제