1990년대 초 웹이 탄생하고나서 지금까지 웹과 인터넷 기술은 나날이 변화해가고 있다. HTTP는 1989년 팀 버너스 리에 의해 제안된 인터넷의 하이퍼 텍스트 시스템이다. HTTP는 태초의 규칙을 지키되 크고 작은 기능이 개선되면서 지금까지도 웹 통신의 중요 요소로 자리잡고 있다. 그렇다면 HTTP의 초기 모습은 어땠는지 시대별로 살펴보자
요청하는 컴퓨터와 응답하는 컴퓨터가 데이터를 통신하기 위해 TCP 연결을 하고 요청과 응답을 한번씩 주고받고 나면 그 연결을 끊고 다시 새 연결을 하는 방식이었다. 이러한 방식의 문제점은 같은 컴퓨터 사이에서 여러 개의 콘텐츠를 요청할 때도 콘텐츠별로 매번 새 연결을 맺어야 했다는 점이다. 한 번 클라이언트와 서버가 연결이 되면 TCP에서는 데이터를 검증하기 위한 핸드셰이크가 이루어지는데 한 번의 핸드셰이크만하더라도 시간이 어느 정도 소요되기에, 데이터를 여러 번 주고 받느라 이 과정을 몇 번 반복하다보면 성능이 떨어질 수밖에 없다.
말 그대로 이전 요청에 대한 응답이 도착해야만 다음 요청을 보낼 수 있었다. 이랬을 때의 단점은 앞선 요청에 대한 응답이 늦거나 문제가 생겨 돌아오지 않으면 뒤의 요청들은 계속 기다려야 한다는 점이다.
한 번 TCP 연결을 맺으면 따로 연결을 끊지 않는 이상 연결을 유지하는 기능

지정한 timeout동안 연속적인 요청 사이에 커넥션을 닫지 않고 연결을 유지하게 된다. 그래서 매 데이터마다 수행했던 핸드셰이크 과정이 생략 가능하게 되면서 서버나 CPU의 메모리 자원을 절약할 수 있게 되었다!
첫번째 요청에 대한 응답이 완전히 전송되기 이전에 두 번째 전송 요청을 가능하게 하는 기법

HTTP/1.0의 문제점으로 이전 요청에 대한 응답이 도착해야만 다음 요청을 보낼 수 있다는 점이 있었다. 이를 해결하기 위한 방안이 HTTP/1.1에서의 파이프라이닝 기법이다. 파이프라이닝 기법이 도입되면서 이전 응답과 상관없이 여러 개의 요청을 보낼 수 있게 되었고 그 결과 불필요한 지연을 막고 더 빠른 통신이 가능해졌다.