HTTP/2가 HTTP/1.1보다 성능이 좋은 이유

박세환·2024년 12월 29일

HTTP 요청과 응답의 순서는 반드시 동일한가? 게시글을 작성하면서 HTTP/2의 multiplexing에 대해 알아보았다. 이번 글에서는 Multiplexing을 포함하여 HTTP/2의 성능 향상을 가능케 한 특징에 대해 간단히 정리하겠다.

정리가 잘 된 글이 있어 참고했다.
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-HTTP-20-%ED%86%B5%EC%8B%A0-%EA%B8%B0%EC%88%A0-%EC%9D%B4%EC%A0%9C%EB%8A%94-%ED%99%95%EC%8B%A4%ED%9E%88-%EC%9D%B4%ED%95%B4%ED%95%98%EC%9E%90

HTTP Header Compression

  • HTTP/2에서 Header를 Binary Frame으로 만들면서 압축 가능해짐.
    • HPACK 압축 방식을 사용
  • 중복된 header 속성을 생략하여 패킷 크기 절약
    • 요청 여러 개 보낼 때, host나 scheme, user-agent와 같은 정보가 중복 전송되기 때문에, 해당 정보를 table에 저장하고 header에는 테이블의 인덱스만 보내면 데이터 중복을 최소화할 수 있음.

HTTP Multiplexing

  • HTTP/2에서는 각 Frame을 Stream ID로 구분할 수 있으므로, 하나의 TCP connection에서 여러 요청과 응답(stream)을 순서 상관 없이 병렬로 보낼 수 있기 때문에 전체적인 Response Time이 감소됨.

Server Push

  • HTML이 CSS나 JS 파일, 이미지 파일 등을 참조하고 있는 경우, 서버가 이를 파악하여 클라이언트가 요청하기 전에 HTML과 같이 보내버림. n회의 RTT 감소
profile
And I'm ready to dive

0개의 댓글