HTTP/1.1은 기본적으로 Connection 당 하나의 요청을 처리하도록 설계
HTTP/1.1 성능 개선을 위해 파이프라이닝 기술 도입
하나의 커넥션에서 한 번에 순차적인 여러 요청을 연속적으로 하고, 그 순서에 맞춰 응답을 받는 방식
먼저 받은 요청이 끝나지 않으면 그 뒤에 있는 요청의 처리가 먼저 끝났어도 앞의 요청이 끝날 때 까지 기다려야 함
-> HOL Blocking 문제 발생
요청을 병렬로 처리하기 위해 6-8개 정도의 여러 커넥션을 이용해 데이터를 가져오는 방식으로 성능을 개선함
스트림 : 구성된 연결 내에서 전달되는 바이트의 양뱡향 흐름이며, 하나 이상의 메시지가 전달될 수 있음
메시지 : 논리적 요청 또는 응답 메시지에 매핑되는 프레임의 전체 시퀀스
프레임 : HTTP/2.0에서 통신의 최소 단위이며 각 최소 단위에는 하나의 프레임 헤더가 포함됨
바이너리 프레이밍 계층을 사용해 요청과 응답의 멀티 플렉싱을 지원함
HTTP 메시지를 바이너리 형태의 프레임으로 나누고, 이를 전송 후 받은 쪽에서 다시 조립함
요청과 응답이 동시에 이루어져 하나의 연결에 여러 요청과 응답이 뒤섞여있음
Multiplexed Streams
요청이 커넥션 상에서 다중화 되므로 HOL(Head Of Line) Blocking이 발생하지 않음
Stream Prioritization
Header Compression
Server Push
HTTP/1.1과 높은 수준의 호환성 - 메소드, 상태코드, URI 및 헤더 필드
페이지 로딩 속도 향상