Http2

웹 프로그래밍

Posted by jopemachine on October 8, 2021 Updated on September 25, 2022

Http2

  • 기존 HTTP 1.x 표준, 의미 체계을 대체하는 게 아니라 확장함.

  • Http 1.x 클라이언트로 Http2 서버를 이용할 수 없음, 반대도 마찬가지.

  • 주요 목표는 다중화, 헤더의 더 효율적인 압축, 서버 푸시, 요청의 우선순위 지정 기능 추가 라고 함.

  • HTTP 1.x가 단순한 텍스트를 주고 받던 것과 다르게, HTTP2는 스트림을 만들어 메세지를 주고 받음. HTTP 헤더, 페이로드 등은 메시지 내에서 프레임이란 가장 작은 단위로 묶임.

  • 바이너리 프레이밍 layer를 도입해 multiplexing (다중화)를 지원한다. 하나의 연결에서 여러 스트림의 요청, 응답을 병렬로 처리함.

  • 서버 푸시라는 개념이 생겼다. 클라이언트에 response를 한 번만 주는 게 아니라 추가적인 리소스를 푸시해 줄 수 있다. (해당 방법을 이용하면 inlining 처럼 추가적인 연결이 필요 없다는 장점을 가져가면서 캐싱도 가능.)

  • HPACK이라는 압축 방식을 사용해 많은 메타 정보를 저장해야 하는 헤더를 압축한다.