Lined Notebook

HTTP/2와 HTTP/3의 차이 ★★★

by yjym33

HTTP/2와 HTTP/3는 모두 HTTP 프로토콜의 최신 버전으로, 웹 페이지 로딩 속도와 성능을 향상시키기 위해 개발된 버전입니다. 이 두 프로토콜 간의 주요 차이에 대해 자세히 설명하겠습니다.

1. 프로토콜 기반 및 성능 개선:


HTTP/2:

HTTP/2는 SPDY 프로토콜을 기반으로 개발되었으며, 이전의 HTTP/1.1과 비교하여 주요 개선 사항 중 하나는 "멀티플렉싱(Multiplexing)"입니다. 이것은 단일 TCP 연결에서 여러 요청과 응답을 병렬로 처리할 수 있게 해줍니다. 따라서 HOL(Head-of-Line) Blocking 문제를 완화하고 페이지 로딩 속도를 향상시킵니다.
또 다른 중요한 개선 사항은 헤더 압축과 바이너리 프레이밍 계층 사용입니다. 헤더 압축은 요청과 응답의 메타데이터 크기를 줄여주고, 바이너리 프레이밍 계층은 데이터 전송을 효율적으로 관리합니다.


HTTP/3:

HTTP/3는 Google의 QUIC(Quick UDP Internet Connections) 프로토콜을 기반으로 개발되었습니다QUIC은 UDP 프로토콜 위에서 동작하며, TCP의 세션 설정 및 해제 지연 문제를 피할 수 있습니다.
주요한 특징 중 하나는 멀티플렉싱과 데이터 전송에 있습니다. HTTP/2와 비슷하게 멀티플렉싱을 제공하지만, QUIC 프로토콜의 특성으로 인해 더 효율적으로 동작합니다. 또한 연결이 끊어져도 데이터 전송이 계속될 수 있습니다.


2. 전송 계층:


HTTP/2:

HTTP/2는 기본적으로 TCP를 사용하여 통신합니다. TCP는 안정적이지만 연결 설정 및 해제에 추가 오버헤드가 있을 수 있습니다.


HTTP/3:

HTTP/3는 UDP 위에서 동작하며 QUIC 프로토콜을 사용합니다. UDP는 데이터 전송 속도가 빠르지만 안정성 면에서 TCP보다 약간 떨어질 수 있습니다. 그러나 QUIC 프로토콜은 이러한 안정성 문제를 해결하기 위해 설계되었습니다.


3. 연결 설정 및 해제:


HTTP/2:

HTTP/2는 TCP 연결을 설정하고 유지하는데 여전히 3-way 핸드셰이크를 사용합니다. 이는 초기 연결 설정에 대한 지연을 일으킬 수 있습니다.


HTTP/3:

HTTP/3는 QUIC 프로토콜을 사용하므로 연결 설정 및 해제가 더 빠릅니다. QUIC는 연결을 설정하는 과정이 단순하고 빠르며, 다중 경로 통신을 통해 데이터 전송을 최적화합니다.


4. 보안:


HTTP/2:

HTTP/2는 HTTPS를 지원하는 것이 일반적이며, 보안 연결을 요구하지는 않습니다. 그러나 보안 연결을 사용하는 것이 권장됩니다.


HTTP/3:

HTTP/3는 QUIC 프로토콜의 특성으로 보안 연결을 필수적으로 요구합니다. 따라서 HTTPS를 사용해야 합니다.

 


HTTP/2와 HTTP/3는 모두 성능을 향상시키기 위한 여러 기술을 도입하였으며, 특히 HTTP/3은 연결 설정 및 해제 시간을 최소화하여 빠른 웹 페이지 로딩을 지원합니다. 




블로그의 정보

생각보다 실천을

yjym33

활동하기