기타/HTTP & 인증체계

[HTTP] HTTP2 알아보기

just-e 2021. 1. 13. 00:07

HTTP/1.1

HTTP/1.1은 기본적으로 연결(Connection) 하나 요청과 응답을 처리하기 떄문에

동시전송 문제와 다수 리소스 처리하기에 속도와 성능 이슈가 발생한다.

 

HTTP/2

HTTP/1.1에 대한 속도와 성능 이슈를 해결하고자 나온 것이 HTTP/2이다.


HTTP/2는 HTTP 표준을 대체하는 것이 아니라 확장한 것으로 HTTP/2 특징은 다음과 같다.

특징 내용
Multiplexed Streams * 커넥션 하나로 여러 메시지를 동시에 주고받을 수 있음.
* 네트워크 리소스를 보다 효율적으로 사용하여 
  지연 시간을 줄일 수 있음.
Stream Prioritization * 요청 리소스간 의존 관계를 설정할 수 있음.
ServerPush * 클라이언트 요청없이도 클라이언트로 Push할 수 있음.
Header Compression * Header 정보를 HPACK 압축방식 이용하여 압축전송 가능.
* Header 필드 압축을 통해 프로토콜 오버헤드 최소화.

 

HTTP/2의 성능 향상 중 핵심

 

HTTP/2에 성능 향상 중 핵심은 새 바이너리 프레이밍 계층으로, 이 계층 HTTP 메시지가 캡슐화되어 클라이언트와 서버 사이에 전송되는 방식을 규정한다.

기존 줄바꿈으로 구분되는 일반 텍스트 HTTP/1.x 프로토콜과 달리, 모든 HTTP/2통신은 더 작은 메시지와 프레임으로 분할되며각각은 바이너리 혁식으로 인코딩된다.

 

HTTP/2 Stream, Message, Frame

Stream Message, Frame에 대한 용어 설명은 다음과 같다.

용어 내용
Stream * Connection 내에서 양방향 통신을 하고, 하나 이상의 메시지를 전달할 수 있음.
Message * 요청 또는 응답 메시지에 매핑되는 프레임의 전체 시퀀스를 의미한다.
Frame * HTTP/2에서 통신 최소 단위를 말하며, 최소 단위에는 하나의 프레임 헤더가 포함된다.
* 프레임 헤더는 최소한으로 프레임이 속하는 스트림을 식별할 수 있다.

정리하여 설명하면 다음과 같다.

  1. HTTP/2는 HTTP 프로토콜 통신을 바이너리 인코딩된 프레임의 교환을 세분화한다.
  2. 프레임은 특정 스트림에 속하는 메시지에 매핑한다.
  3. 모든 프레임은 단일 TCP 연결 내에서 다중화한다.