HTTP 3.0
❒ Description
HTTP/3.0은 현대 웹의 성능과 안전성을 향상시키기 위해 개발된 HTTP 프로토콜이다. 이전의 2.0과는 근본적으로 다른 방식으로
동작하며, 주로 QUIC(Quick UDP Internet Connections)을 기반으로 한다.
※ 별도의 예상 면접 리스팅 X
❒ 등장 배경
HTTP/3.0은 주로 네트워크 성능과 신뢰성을 개선하기 위해 개발되었다. HTTP/2.0은 기존의 HTTP/1.x에서
많은 개선을 이뤄냈지만, 여전히 TCP 위에서 동작하기 때문에 몇 가지 근복적인 문제를 안고 있다.
특히, TCP의 HOL Blocking 문제가 큰 이슈였다. TCP 연결에서 패킷 손실이 발생하면, 손실된 패킷이 재전송
되기 전 까지 나머지 패킷들은 대기해야 한다. 이는 특히 네트워크가 불안정ㄹ하거나 지연 시간이 긴 환경에서
큰 성능 저하를 초래한다.
이 문제를 해결하기 위해 HTTP/3.0은 QUIC라는 UDP 기반의 새로운 전송 계층 프로토콜을 채택했다.
QUIC는 기존 TCP의 기능을 대체하며, TCP의 단점을 보완하여 더 나은 성능을 제공한다.
참고로 QUIC은 순방향 오류 수정 메커니즘(FEC, Forword Error Correction)이 적용 되어있다.
이는 전송한 패킷이 손실되었다면 수신측에서 에러를 검출하고 수정하는 방식이며 네트워크 환경에서도
낮은 패킷 손실률을 자랑한다.
❒ HTTP 2.0 vs HTTP 3.0
1. UDP 기반
HTTP/2.0은 TCP 위에서 동작하는 반면, HTTP/3.0은 QUIC을 사용한다. QUIC는 UDP 기반이며,
TCP가 제공하는 연결 관리와 데이터 신뢰성 등을 자체적으로 구현한다.
2. HOL Blocking 해결
HTTP/2.0은 단일 연결에서 다중 스트림을 사용할 수 있지만, TCP 위에서 동작하기 때문에 하나의 스트림에서 문제가
발생하면 다른 스트림도 영향을 받을 수 있습니다. (전송 계층에서 발생하는 HOL Blocking)
반면, HTTP/3.0은 QUIC을 통해 각 스트림이 독립적으로 동작하기 때문에, 한 스트림에서 발생한 문제가 다른 스트림에
영향을 주지 않는다.
3. 연결 재사용
HTTP/2.0은 연결이 끊어진 경우 새로운 TCP 핸드셰이크 과정을 거쳐야 하지만 HTTP/3.0은 QUIC을 사용하여
세션 재개(Session Resumption) 기능을 통해 연결이 끊어지더라도 빠르게 복구할 수 있다.
4. 보안
HTTP/2.0은 기본적으로 암호화를 요구하지 않지만, HTTP/3.0은 QUIC이 기본적으로 TLS 1.3을 내장하고 있어
더 강력한 보안 환경을 제공한다.
❒ HTTP 3.0을 사용해서 얻는 이점
1. 성능 향상
QUIC을 통해 TCP의 HOL Blocking 문제를 해결하고, 연결 설정 시간을 단축시켜 네크워크
성능이 크게 향상된다.
2. 연결 안정성
QUIC의 세션 재개 기능을 덕분에 이동 중인 디바이스나 네트워크 상태가 불안정한 환경에서도
연결을 빠르게 복구할 수 있다.
3. 보안 강화
기본적으로 TLS 1.3 암호화를 사용하여 데이터 전송의 기밀성과 무결성을 보장한다.
❒ HTTP 3.0의 단점
1. UDP 기반 프로토콜의 제약
UDP는 TCP보다 네트워크 장비에서 덜 최적화되어 있을 수 있으며, 방화벽 및 NAT 장비에서
UDP 트래픽을 차단하거나 제한할 수 있다.
2. 복잡성 증가
QUIC은 TCP보다 복잡하며, 이를 구현하고 최적화하는 데 더 많은 리소스가 필요하다. 이로 인해
초기 도입 단계에서는 설정 및 디버깅이 여러울 수 있다.
3. 호환성 문제
HTTP/3.0은 상대적으로 새로운 프로토콜이기 때문에 모든 네트워크 환경에서 즉시 사용할 수 없을 수 있다.
특히 오래된 네트워크 장비나 소프트웨어에서 HTTP/3.0을 지원하지 않을 가능성이 크다.