HTTP/1.1을 정의하는 RFC 2616에 따르면 Host:
헤더는 필수 항목입니다.HTTP 호스트 헤더가 언제 정의되지 않습니까?
클라이언트는 모든 HTTP/1.1 요청 메시지에 호스트 헤더 필드를 포함해야합니다.
그러나 PHP manual는 비어있을 수 있음을 의미한다 :
'HTTP_HOST': 호스트의 내용 : 현재 요청 헤더를, 존재하는 경우.
어떤 상황에서이 헤더가 비어서 $_SERVER['HTTP_HOST']
이 비어있을 수 있습니까? 내 응용 프로그램이 거기에 있다는 것에 의존 할 수 있습니까?
[Host :] 헤더는 [HTTPbis] (http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-14#appendix-B.1.1)에 따라 '필수'입니다. 그러나 그것이 항상 존재한다는 것을 의미하지는 않습니다. 아파치는 결석을 우아하게 처리한다. (설정 한 가상 호스트에 도달하지는 않겠지 만). – mario
@mario :'Host :'헤더를 보내지 않는 실제 HTTP/1.1 클라이언트가 있습니까? – Tim
나는 그것들을 실제 클라이언트로 생각하지 않을 것이고, 현대의 브라우저와 라이브러리는 전혀 없다. 그러나 수작업으로 작성된 PHP 스크립트가있을 수 있습니다. 하지만 여전히 대부분 구성 문제이며 Apache vhost와는 관련이 없습니다. HTTP_HOST는 Apache에 의해 사전 검사되며, 실제로 비어있는 것에 대해 걱정하지 않을 것입니다. 있을 법하지 않은 엣지 케이스. – mario