HTTP 요청 헤더에 포함해야하는 필수 정보는 무엇입니까?


답변:


36

GET / HTTP/1.0 유효한 HTTP 요청입니다.

어떤이 없으면 Host헤더 필드는, 당신은 당신이 대상 서버가있는 경우를 기대했던 결과를 얻지 못할 수도 가상 호스트 다른 가상 호스트에서 자신을 구별하는 고유 한 IP 주소를 가지고 있지 않습니다.

HTTP 1.1에는 Host필드 가 필요합니다 .


1
나는 약간의 연구를했고 당신은 옳은 @gbroiles입니다. 이름 기반 가상 호스팅의 경우 일반적으로 HTTP 1.1을 사용하는 브라우저가 필요합니다. 브라우저는 호스트 헤더에 호스트 이름을 보내고 웹 서버는 구성된 경우 이름 기반 가상 호스트를 제공합니다. 오래된 브라우저와 HTTP 1.0에서는 다소 가능하지만 Apache의 ServerPath 지시문과 같은 해결 방법이 필요합니다. 운 좋게도 최신 브라우저는 HTTP 1.0을 사용할 때 확장 기능을 구현하여 호스트 헤더 필드를 전송합니다. w3.org/Protocols/rfc2616/rfc2616-sec14.html
스테판 크리스틴

1
실제로 HTTP 1.0을 수행하는 브라우저가 있습니까?
Pacerier

많은 사용자 에이전트가 HTTP 1.0을 사용합니다. 웹 브라우저를 사용하는 사용자는 가능한 경우 HTTP 1.1 또는 2.0을 사용하지만 HTTP 1.0 만 지원하는 프록시를 통해 액세스 할 수 있습니다. 크롤러 또는 봇은 HTTP 1.0을 사용할 수 있습니다. wgetHTTP 1.0을 사용하는 것과 같은 간단한 클라이언트 . HTTP 1.1 호환 서버는 HTTP 1.0 클라이언트를 지원하므로 HTTP 1.0 클라이언트를 지원하기 위해 서버 측에서 요구하는 노력은 없습니다. HTTP 1.0 요청의 경우 인코딩 및 keep-alive 기본값은 off입니다.
thomasrutter 2

3

요청에 HTTP 헤더가 필요하지 않습니다. 필요한 응답 헤더도 없습니다.

HTTP 1.1 이상의 모든 것 -RFC 2616


15
당신은 착각입니다. RFC에 따르면 다음과 같이 링크했습니다. "클라이언트는 모든 HTTP / 1.1 요청 메시지에 호스트 헤더 필드를 포함해야합니다". 따라서 Host헤더 필수입니다.
user219882

2
맞지만 클라이언트가 먼저 HTTP / 1.1을 사용할 필요는 없습니다.
Chris S

2
콘텐츠 길이 또는 전송 인코딩은 엔터티가 요청 또는 응답과 함께 제공되는 경우에만 필수이며 많은 경우 요청 또는 응답에 엔터티가 없습니다 (GET 요청 또는 302 응답).
Brandon Rhodes

6
공감할 수는 없지만이 답변은 잘못되었습니다. 수정하거나 제거하십시오.
vikingsteve

4
vikingsteve에 동의합니다. 귀하의 답변은 HTTP 1.1에 필요한 헤더가 없음을 의미합니다.
nullstellensatz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.