[Web] HTTP 1.0 과 HTTP 1.1의 차이

HTTP란?

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

HTTP에 대한 자세한 내용은 다음을 참고하자.

 

 

[네트워크] HTTP란? non-persistent HTTP vs persistent HTTP | RTT란?

Web 과 HTTP 웹 페이지는 객체(object)로 구성된다. 객체(object)는 HTML 파일, JPEG 이미지, JAVA applet, 오디오 파일 등이 될 수 있다. 웹페이지는 여러 참조된 객체를 포함하는 기본 HTML 파일로 구성되며,

code-lab1.tistory.com

 

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 vs HTTP 1.1
[그림 1] HTTP 1.0 vs HTTP 1.1

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은 여러 개의 요청을 동시에 보낼 수 있다.

 

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

 

[네트워크] pipelined protocols(Go-Back-N, Selective Repeat)이란? | selective repeat 딜레마(dilemma)

pipelined protocols pipelined protocols에서 pipelining은 송신자가 다수의 패킷을 한 번에 보내는 것을 말한다. 즉 ACK신호를 받을 때까지 기다리다 ACK신호를 받고 나서 다음 데이터를 보내는 stop and wait..

code-lab1.tistory.com

 

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의 추가로 프록시가 사용자의 인증을 요구하는 게 가능해졌고, 이를 통해 인증 절차가 향상되었다.

 

반응형

댓글

Designed by JB FACTORY