기본적으로 HTTP는 앞서 설명한 전송 계층 위에 있는 애플리케이션 계층으로서 웹 서비스 통신에 사용된다. HTTP/1.0 부터 시작해서 발전을 거듭하여 현재 HTTP/3 까지 알아보자.

1. HTTP/1.0


HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었다. 이는 RTT 증가를 불러오게 되었다.

1-1) RTT(Round Trip Time) 증가

RTT 증가

RTT 증가

서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점이 있었다.

RTT : 클라이언트가 서버에 패킷을 보내고 그 응답을 받기까지 걸리는 왕복 시간

e.g. 하나의 HTML 페이지를 로드하려면 어떻게 될까?

<html>
  <link rel="stylesheet" href="style.css">
  <script src="app.js"></script>
  <img src="logo.png">
</html>

총 8 RTT = RTT가 200ms라면 1.6초가 리소스 다운로드에만 소요된다.