본문 바로가기

Growth Log/Tech.Note

HTTP/1 vs HTTP/2 vs HTTP/3 비교 분석

HTTP 프로토콜이란?

HTTP(Hypertext Transfer Protocol)는 웹에서 데이터를 주고받기 위한 통신 규약입니다. 웹의 발전과 함께 HTTP도 진화해왔으며, 각 버전별로 성능과 기능이 크게 개선되었습니다.

HTTP/1.X (1996년 ~ 1999년)

  • 주요 특징:
    • 지속적 연결(Persistent connections) 도입
    • 파이프라이닝(Pipelining) 지원
    • 청크 전송 인코딩
    • 캐시 제어 메커니즘
  • 한계점:
    • Head-of-line blocking 문제 (한 요청이 완료될 때까지 다음 요청 대기)
    • 단순한 요청-응답 모델 (한 번에 하나의 요청만 처리 가능)
    • 여러 자산(이미지, 스크립트 등) 로딩 시 많은 요청-응답 필요
    • 요청 우선순위 지정 불가
    • 텍스트 기반 헤더로 인한 오버헤드

HTTP/2 (2015년)

  • 주요 개선사항:
    • 바이너리 프레이밍 레이어 도입
      • 텍스트 대신 바이너리 형식 사용으로 효율성 향상
    • 멀티플렉싱으로 동시 요청/응답 처리
      • 단일 연결에서 여러 요청/응답을 동시에 처리
      • Head-of-line blocking 문제 해결
    • HPACK을 통한 헤더 압축
      • 물리전송량 감소
    • 서버 푸시 기능
      • 클라이언트 요청 전에 서버가 리소스를 미리 전송
    • 스트림 우선순위 지정
      • 중요 리소스 우선 처리 가능
  • 장점:
    • 단일 연결에서 여러 자산을 효율적으로 전송
    • 네트워크 리소스 활용도 향상

HTTP/3 (최신)

  • 주요 특징
    • TCP 대신 QUIC 프로토콜 사용
    • UDP 기반 전송
    • 연결 마이그레이션 지원
      - IP 주소 변경 시에도 연결 유지
    • TLS 1.3 기반 내장 암호화
    • Head-of-line blocking 개선
      - 개별 스트림 레벨에서 패킷 손실 처리
    • O-RTT 연결설정
      - 더 빠른 연결 설정
      - 이전 방문 서버에 대한 연결 시간 단축
    • 더 나은 혼잡 제어

버전별 성능 비교

페이지 로딩 시간

  • HTTP/1.1: 기준
  • HTTP/2: 약 30-50% 향상
  • HTTP/3: HTTP/2 대비 약 10-20% 추가 향상

주요 차이점

기능 HTTP/1.1 HTTP/2 HTTP/3
멀티플렉싱 ☑️ ☑️
헤더 압축 ☑️ ☑️
서버 푸시 ☑️ ☑️
연결 마이그레이션 ☑️
0-RTT ☑️

 

더보기

실제 적용 가이드

HTTP/2 적용 방법

  • 서버 설정 변경
  • SSL 인증서 설치 (HTTP/2는 HTTPS 필요)
  • 웹서버 설정 (Nginx/Apache) 업데이트

HTTP/3 적용 방법

  • QUIC 프로토콜 지원 확인
  • TLS 1.3 설정
  • CDN 서비스 활용 (Cloudflare 등)

주의사항

  • HTTP/2는 대부분의 현대 브라우저에서 지원
  • HTTP/3은 아직 일부 환경에서 제한적 지원
  • UDP 기반 통신으로 인한 방화벽 설정 필요

현황

  • HTTP/3은 2022년 7월 표준으로 채택
  • 약 70% 이상의 웹 트래픽이 HTTP/3으로 전환 중
  • 대부분의 주요 브라우저가 지원 (Chrome, Edge, Firefox)
  • Safari는 부분적 지원 상태

개발자 관점

- 비교라는 말은 틀렸다. 표준의 진화, 발전의 관점으로 보아야 한다.

- HTTP/1.1에서 HTTP/2로의 전환은 비교적 용이 (TCP 기반으로 HTTP/2는 이미 널리 채택)

- UDP 패킷 사용으로 인한 연결 문제 가능성 ( HTTP/2에서 HTTP/3으로의 전환은 QUIC과 UDP 지원 필요)

- TLS 1.3 지원 필요 : HTTP/2와 HTTP/3은 HTTP/1.1과의 하위 호환성 유지

 

출처: https://dev.to/accreditly/http1-vs-http2-vs-http3-2k1c

출처: accreditly.io/articles/the-differences-between-http-11-http2-and-http3