Host 헤더 (HTTP/1.0, HTTP/1.1)

이태혁·2020년 9월 16일
0

HTTP/1.0버전에서는 호스트 뒤에 경로만을 요청메세지에 담아서 보낸다.
다시 말해 사이트 주소는 IP 커넥션에서만 주고 받고 HTTP 프로토콜로는 host주소를 주고 받지 않는다.
같은 호스트에 여러 서버를 두는 가상호스팅의 경우 어떤 호스트로 접근하려는지 알아야 하는데 HTTP/1.0에서는 알 방법이 없다.

그 해결책으로 HTTP/1.1에서는 host헤더를 추가해서 그곳에 호스트 정보를 담아서 HTTP 요청 메세지를 보낸다.

이때 서버가 처리하는 프로세스는 다음과 같다.

  1. HTTP 요청 메세지에 전체 URL이 기술되어 있으면(host헤더가 없었을때 호스트의 하위 경로뿐만 아니라 전체 URL을 대신해서 보내는 것이 하나의 해결책이었다.) Host헤더를 무시하고 URL을 사용한다.
  2. HTTP 요청 메세지에 있는 URL에 호스트 명이 없고Host 헤더가 있으면, 호스트 명과 포트를 Host헤더에서 가져온다.
  3. 1,2단계에서 host명을 알 수 없으면 400 Bad Request 응답을 보낸다.
profile
back-end, cloud, docker, web의 관심이 있는 예비개발자입니다.

0개의 댓글