2017-12-01 9 views
-1

우리는 http에서 tcp를 사용한다는 것을 알고 있습니다. tcp connection에서 origin과 destination은이 문장에 따라 우리가 Http header에 host를 지정하는 이유를 지정합니다. 예를 들어 :우리가 이미 알고있는 것처럼 /Http 헤더에 호스트를 지정하는 이유는 무엇입니까?

GET /index.html HTTP/1.1\r\n 
Host: www-net.cs.umass.edu\r\n 
User-Agent: Firefox/3.6.10\r\n 
Accept: text/html,application/xhtml+xml\r\n 
Accept-Language: en-us,en;q=0.5\r\n 
Accept-Encoding: gzip,deflate\r\n 
Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n 
Keep-Alive: 115\r\n 
Connection: keep-alive\r\n 
\r\n 
+1

TCP 헤더에 호스트와 같은 것이 없습니다. TCP 헤더는 https://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure를 참조하십시오. –

+0

죄송합니다. 내 질문을 편집합니다. –

답변

1

가 지정된 이유는 이름 호스트의을 지정하는 것입니다. 요청 자체가 IP 헤더의 IP 주소로 만들어지기 때문에 웹 서버는 요청 된 도메인을 알 수있는 실제 방법이 없습니다.

HTTP 1.0에서는 필요하지 않습니다. HTTP 1.0이 수년 동안 존재 한 후에 가상 호스트의 보급이 매우 보편화되었습니다. 가상 호스팅은 사용자가 인식하지 못하는 경우 하나의 서버에 여러 사이트를 호스팅 할 수있게 해줍니다. 심지어 동일한 IP도 각 도메인에 다르게 응답합니다.

가상 호스팅이 매우 보편적 이었기 때문에 HTTP 1.1 표준은 Host 헤더를 요구 사항으로 만들었으며 요청을 라우팅해야하는 사이트를 파악하는 데 필요한 논리를 단순화했습니다.