TIL. 95 [Web] HTTP 1.0 과 HTTP 1.1의 차이

조윤식·2022년 9월 17일
0

HTTP란?

HTTP(Hyper Text Transfer Protocol)는 인터넷에서 주로 사용하는 데이터를 송수신하기 위한 프로토콜이다. 

HTTP 1.0과 HTTP 1.1의 차이

1) Non-Persistent vs Persistent

HTTP 1.0과 HTTP 1.1의 가장 큰 차이점은 연결의 지속성이다. HTTP는 기본적으로 TCP를 이용하여 통신한다.
이때 HTTP 1.0은 TCP 세션을 유지하지 않고, 1.1은 TCP 세션을 유지한다는 큰 차이점이 발생한다.

HTTP 1.0은 매번 데이터를 요청하고 수신할 때마다 새로운 TCP 세션을 맺어야 한다. 
반면, HTTP 1.1은 한 번의 TCP 세션에 여러 개의 요청을 보내고 응답을 수신할 수 있다. 

즉, HTTP 1.0은 Non-persistent HTTP, HTTP 1.1은 Persistent HTTP라고 할 수 있다.
따라서 HTTP 1.1은 TCP 세션 처리 부하를 줄이고 응답속도를 개선 할 수 있다.
[그림 1]에서 확인 할 수 있듯이, 두 개의 요청과 응답을 처리하는 속도가 HTTP 1.1이 더 빠른 것을 확인할 수 있다.
TCP 세션을 열고 닫는 시간이 줄어들기 때문이다.

2) 파이프라이닝(Pipelining)

HTTP 1.0은 파이프라이닝을 제공하지 않는다. 반면, HTTP 1.1은 파이프라이닝 기능을 제공한다.

즉, HTTP 1.0은 1번 요청을 보내고 1번 응답을 받아야지 2번 요청을 보내는 식으로 동작한다.
하지만 HTTP 1.1은 여러 개의 요청을 동시에 보낼 수 있다.

파이프라이닝에 대한 자세한 내용은 다음을 참고하자.

3) 호스트 헤더(Host Header)

HTTP 1.0은 하나의 IP 주소에 여러 개의 도메인을 운영 할 수 없었다. 따라서 도메인 별로 IP를 구분해서 준비해야 하기 때문에 서버의 개수가 늘어나야 했다. 하지만 HTTP 1.1은 가상 호스팅(Virtual Hosting)이 가능해졌기 때문에 하나의 IP 주소에 여러 개의 도메인을 적용시킬 수 있다.

4) 향상된 인증 절차 (Improved Authentication Procedure)

HTTP 1.1은 다음과 같은 2개의 header가 추가되었다.

  • proxy-authentication
  • proxy-authorization

실제 서버에서 클라이언트 인증을 요구하는 www-authentication 헤더는 HTTP 1.0부터 지원됐으나, 서버와 클라이언트 사이에 프락시가 위치하는 경우 프락시가 사용자의 인증을 요구할 수 있는 방법이 없었다.

그러나 위와 같은 header의 추가로 프록시가 사용자의 인증을 요구하는 게 가능해졌고, 이를 통해 인증 절차가 향상되었다.

profile
Slow and steady wins the race

0개의 댓글