HTTP/2.0

HTTP/2.0 등장 배경

HTTP/1.1의 메시지 포맷은 구현의 단순성과 접근성에 주안점을 두고 최적화되었다. 그러다보니 성능은 어느 정도 희생하게되었다. 커넥션 하나를 통해 요청 하나를 보내고 그에 대해 응답 하나만을 받는 HTTP의 메시지 교환 방식은 단순하지만 응답을 받아야만 그 다음 요청을 보낼 수 있기 때문에 심각한 회전 지연을 피할 수 없다. (HOL blocking 문제라고도 한다. ) 이 문제를 회피하기 위해 병렬 커넥션이나 파이프라인 커넥션이 도입되었지만 성능 개선에 대한 근본적인 해결책은 되지 못했다.

2009년 구글은 SPDY프로토콜을 내놓았다. 이는 기존 HTTP의 회전 지연으로 인한 속도 문제를 개선하고자 아래의 기능을 추가하였다.

RTT가 20ms인 상황에서 12.34%, 80ms인 상황에서 23.86%, 200ms인 상황에서 26.79%의 개선효과가 있었다.

개요

HTTP/1.1과의 차이점

프레임

모든 메시지는 프레임에 담겨 전송된다 (근데 프레임은 링크 레이어에서 사용하는 것 아닌가?) 8바이트의 크기의 헤더로 시작하며 최대 16383바이트의 크기의 페이로드가 온다. ![[image-99.png]]

image-99.png

image-100.png

image-101.png