HTTP 2.0에서 하나의 TCP 연결 안에서 요청마다 별도의 Stream을 만들어 여러 요청/응답을 동시에 처리하는 방식이다.
- 송신자는 HTTP 메시지를 Frame 단위로 인터리빙
- 수신자는 같은
Stream Identifier를 가진 프레임들을 모아, 원래의 HTTP 메시지로 재조립 (Demultiplexing)
인터리빙
하나의 TCP 연결을 통해 여러 개의 요청과 응답을 작은 프레임(Frame) 단위로 쪼개어 번갈아 주고받는 기술
- 하나의 TCP 연결을 생성한다.
- 각 요청마다 서로 다른 Stream을 생성한다.
- 요청 A → Stream 1
- 요청 B → Stream 3
- 요청 C → Stream 5
- 각 요청과 응답은
HEADERS,DATA등의 Frame으로 표현된다. - 송신자는 여러 Stream의 Frame을 하나의 TCP 연결 위에서 번갈아 전송한다.
- 수신자는 Frame의
Stream Identifier를 확인하여 각각의 Stream으로 분류한다. - 같은 Stream의 Frame들을 처리하여 각각의 HTTP 요청/응답을 완성한다.
한계점
다만, HTTP 계층의 HOL Blocking은 해결했지만, TCP 계층의 HOL Blocking까지 해결한 것은 아니다.
HTTP/2도 하나의 TCP 연결을 사용하기 때문에 TCP 패킷 하나가 유실되면 해당 패킷이 재전송될 때까지 뒤의 TCP 데이터도 전달되지 않을 수 있습니다.
그래서 HTTP/3는 TCP 대신 QUIC을 사용하여 Stream 간 독립성을 더 강화했다.

출처 및 참고자료
HTTP/2.0 - HTTP 멀티플렉싱, HoL Blocking, 그리고 HTTP/3.0의 등장 배경HTTP/2.0의 등장 배경HTTP/1.1은 그 구현의 단순성과 명료함, 접근성으로 많은 사랑을 받아왔고, 받고 있다.하지만, 하나의 커넥션으로 여러 요청/응답을 처리하기 어렵고, 응답을 받아야만 그 다음 요청을 보낼 수 있는 것은 분명한 아쉬움으로 남아있었다.그리하여, 다양한 곳에서 속도를 개선하기 위한 다양한 방법의 연구가 진행되었다.최종적으로, 구글의 "SPDY" 가 HTTP/2.0의 표준으로 결정되었다.하나의 TCP 커넥션에 여러 요청을 동시에 보내, 레이턴시를 줄이는 것 - HTTP 멀티플렉싱RTT가 20ms인 경우, 12.34% 성능 개선 효과를 보았다.RTT가 80ms인 경우, 23.85% 성능 개선 효과를 보았다.RTT가 200ms인 경우, 26.79% 성능 개선 효과를 보았다.HTTP/2..go-gradually.tistory.com Mediumhttps://freecontent.manning.com/animation-http-1-1-vs-http-2-vs-http-2-with-push/