[네트워크] HTTP 1.0 / 1.1 의 차이

2022. 10. 14. 16:29네트워크

Telnet으로 GET 요청을 보내면서 궁금했던 점이 있었다.

HTTP 1.0에서는 헤더에 host가 불필요한데, 1.1에서는 host를 명시해줘야 했다.

이 사실을 몰랐을 때는 Telnet 접속 시 400 Bad Request가 반환 되기에 당황했던 기억이 있다.

왜 host를 왜 필수적으로  보내야 하는지 궁금하기도 했고 이외에도 무슨 차이점이 있을 지 궁금해서 알아보기로 했다.

HTTP 1.1의 요청 메시지 형식


HTTP 1.1는 1.0과는 달라진 3가지 특징이 있다.

1. 커넥션 유지(Persistent Connection)

2. 호스트 헤더(Host Header)

3. 개선된 인증 절차(Improved Authentication Procedure)

 

 

1. 커넥션 유지(Persistent Connection)

HTTP 1.0에서는 매 요청 컨텐츠마다 TCP세션을 맺어야 하기에 처리에 부하가 생기고 응답속도가 지연될 수 있었다.

HTTP 1.1에서는 지속적인 세션을 유지함으로써 하나의 TCP 세션을 통해 여러 개의 컨텐츠 요청이 가능하게 되었다.

 

 

2. 호스트 헤더(Host Header)

HTTP 1.0에서는 하나의 IP에 여러개의 도메인을 운영하는것이 불가능 했다.

도메인마다 IP를 구분하여 준비해야 하는 번거로움이 있었고, 도메인 개수 만큼 서버도 늘어야 하는 구조였다.

HTTP 1.1에서는 Host헤더를 명시해줌으로써 버츄얼 호스팅이 가능해졌고, 다른 도메인이라도 같은 IP를 사용할 수 있게 되었다.

버츄얼 호스팅

 

 

3. 개선된 인증 절차(Improved Authentication Procedure)

HTTP 1.1에서는 다음의 2개의 header가 추가되었다.

  • proxy-authentication
  • proxy-authorization

www-authentication 헤더를 통해 서버가 클라이언트 인증을 요구하는 방법은  HTTP 1.0부터 있었으나, 서버와 클라이언트 사이에 프록시가 위치하는 경우에도 프록시가 인증을 요구할 수 있도록 개선되었다.  

'네트워크' 카테고리의 다른 글

[네트워크] HTTP / HTTPS 뭐가 다를까?  (0) 2022.10.14