learning center banner

HTTP/3는 무엇인가요?

HTTP/3는 무엇인가요?

HTTP/3는 인터넷의 차세대 전송 프로토콜로, 더 빠르고, 더 안전하며, 더 신뢰할 수 있는 네트워크 통신을 제공하는 것을 목표로 합니다. 이는 QUIC(Quick UDP Internet Connections) 프로토콜을 기반으로 하며, 수많은 혁신과 이점을 제공합니다.

HTTP 프로토콜의 발전

HTTP 프로토콜의 발전은 여러 버전과 개선 과정을 거쳤습니다. 다음은 HTTP 프로토콜의 진화에서 주요 이정표를 요약한 것입니다:

  • HTTP/0.9: 1991년에 출시된 HTTP의 최초 버전으로, HTML 문서를 검색하기 위한 GET 메서드만 지원하는 간단한 프로토콜이었습니다. 헤더, 상태 코드 및 고급 기능이 부족했습니다.
  • HTTP/1.0: 1996년에 출시되어 중요한 개선 사항을 도입했습니다. 추가 요청 메서드(POST, HEAD 등)를 지원하고, 요청 및 응답에 대한 헤더를 도입했으며, 상태 코드 및 오류 처리를 지원했습니다. HTTP/1.0은 또한 지속 연결을 도입하여 단일 연결에서 여러 요청 및 응답을 가능하게 했습니다.
  • HTTP/1.1: 1999년에 출시된 가장 널리 사용되는 HTTP 버전입니다. 파이프라인 지원, 캐시 제어, 가상 호스팅 및 청크 전송 인코딩과 같은 기능을 도입했습니다. HTTP/1.1은 성능과 효율성을 크게 향상시켰습니다.
  • SPDY: SPDY는 Google에서 웹 페이지 로딩 속도를 개선하기 위해 개발한 실험적 프로토콜입니다. 다중화, 헤더 압축 및 서버 푸시와 같은 기능을 도입했습니다. SPDY의 일부 기능은 나중에 HTTP/2 표준에 통합되었습니다.
  • HTTP/2: 2015년에 출시되어 HTTP/1.1에 비해 주요 개선 사항을 도입했습니다. 이진 프로토콜, 프레임을 통한 통신, 다중화 지원, 단일 연결에서 여러 요청 및 응답을 보낼 수 있는 기능을 도입했습니다. HTTP/2는 또한 헤더 압축 및 서버 푸시를 도입하여 성능과 효율성을 더욱 향상시켰습니다.
  • HTTP/3: HTTP/3는 QUIC(Quick UDP Internet Connections) 프로토콜을 기반으로 하는 차세대 HTTP 프로토콜입니다. QUIC는 더 빠른 연결 설정 및 데이터 전송을 제공하도록 설계된 UDP 기반 전송 프로토콜입니다. HTTP/3는 QUIC의 기능을 활용하여 더 빠른 로딩 속도, 향상된 보안 및 적응성을 제공합니다. HTTP/3는 아직 개발 중이지만 일부 브라우저와 서버에서 지원을 받기 시작했습니다.

이러한 버전과 개선 사항들은 HTTP 프로토콜이 지속적으로 발전하고 인터넷의 변화하는 요구를 충족시키며, 더 나은 성능, 보안 및 사용자 경험을 제공할 수 있게 했습니다. 특히 HTTP/2와 HTTP/3의 도입은 성능 개선과 새로운 기능을 가져오며 웹의 발전과 혁신을 촉진했습니다.

HTTP/3란 무엇인가?

HTTP/3는 인터넷에서 데이터 교환의 기초가 되는 최신 버전의 하이퍼텍스트 전송 프로토콜(HTTP)입니다. HTTP/3는 웹 페이지 로딩 속도와 전체 네트워크 성능을 향상시키기 위한 몇 가지 중요한 개선 사항과 최적화를 도입합니다.

HTTP/3의 중요한 변화 중 하나는 기본 전송 프로토콜로 TCP(Transmission Control Protocol)를 더 이상 사용하지 않는다는 것입니다. 대신 QUIC(Quick UDP Internet Connections)로 전환하였습니다. QUIC는 TCP의 신뢰성과 UDP의 속도를 결합한 UDP 기반 전송 프로토콜입니다. QUIC는 내장형 전송 계층 보안(TLS) 암호화, 개선된 혼잡 제어 및 오류 복구 메커니즘과 같은 새로운 기능도 도입합니다.

QUIC를 사용할 때의 주요 장점 중 하나는 네트워크 대기 시간을 줄일 수 있다는 점입니다. TCP에서는 새로운 연결을 설정하는 데 여러 번의 왕복 통신이 필요하여 네트워크 지연이 증가합니다. 반면 QUIC는 단일 왕복으로 연결을 설정할 수 있어 지연 시간을 줄입니다. 또한 QUIC는 다중화를 지원하여 단일 연결을 통해 여러 요청을 병렬로 보낼 수 있어 네트워크 성능을 더욱 향상시킵니다.

quic over http/3

하지만 HTTP/3는 몇 가지 문제에도 직면해 있습니다. UDP 기반이기 때문에 일부 네트워크 장치가 UDP 트래픽을 차단하거나 제한할 수 있어 HTTP/3의 배포와 성능에 영향을 미칠 수 있습니다. 또한 HTTP/3의 구현 및 최적화에는 더 많은 계산 자원이 필요하여 서버 부하가 증가할 수 있습니다.

HTTP/3의 새로운 기능은 무엇인가?

HTTP/3는 더 빠르고, 더 안전하며, 더 신뢰할 수 있는 네트워크 통신 경험을 제공하기 위해 여러 가지 새로운 기능과 개선 사항을 도입합니다. 다음은 HTTP/3의 새로운 기능입니다:

  • QUIC 프로토콜: HTTP/3는 기본 전송 프로토콜로 QUIC(Quick UDP Internet Connections) 프로토콜을 사용합니다. QUIC는 UDP 기반 전송 프로토콜로, 더 빠른 연결 설정과 데이터 전송, 낮은 대기 시간, 그리고 TCP에 비해 더 나은 적응성과 혼잡 제어를 제공합니다.
  • 빠른 연결 설정: HTTP/3는 0-RTT(Zero Round Trip Time) 핸드셰이크를 통해 빠른 연결 설정을 가능하게 합니다. 이전에 연결이 설정된 경우 클라이언트가 첫 번째 요청에서 즉시 데이터를 전송할 수 있어 핸드셰이크 지연을 줄입니다.
  • 다중화: HTTP/3는 다중화를 지원하여 단일 연결을 통해 여러 요청과 응답을 동시에 전송할 수 있습니다. 이를 통해 네트워크 활용도가 향상되고, 연결 설정 및 종료 오버헤드가 감소하며 성능이 향상됩니다.
  • 낮은 대기 시간: 연결 설정 및 복구를 위한 왕복 시간을 최소화함으로써 HTTP/3의 QUIC 프로토콜은 대기 시간을 줄입니다. 이는 패킷 손실이 높은 네트워크 환경에서 특히 유리하며, HTTP/3는 낮은 대기 시간을 유지할 수 있습니다.
  • 전송 계층 보안: HTTP/3는 전송 계층 보안(TLS)을 통합하여 모든 데이터가 암호화되어 전송되도록 보장합니다. 이는 데이터 도난이나 변조를 방지하여 더 높은 보안과 개인 정보 보호를 제공합니다.
  • 혼잡 제어: HTTP/3의 QUIC 프로토콜은 고급 혼잡 제어 알고리즘을 사용하여 네트워크 혼잡에 더 잘 적응합니다. 이로 인해 더 안정적인 전송 성능을 제공합니다.

이러한 새로운 기능과 개선 사항들은 HTTP/3가 연결 설정과 데이터 전송 속도를 높이고, 대기 시간을 낮추며, 네트워크 조건에 더 잘 적응하고, 강화된 개인 정보 보호를 통해 더 안전한 경험을 제공하게 만듭니다. HTTP/3는 차세대 인터넷 전송 프로토콜로서의 중요한 혁신을 나타냅니다.

HTTP/3 대 HTTP/2

HTTP/3와 HTTP/2는 모두 월드 와이드 웹에서 데이터를 전송하는 데 사용되는 하이퍼텍스트 전송 프로토콜의 버전입니다. HTTP/2는 HTTP/1.1에 비해 상당한 개선 사항을 도입했지만, HTTP/3는 새로운 기능과 최적화를 도입합니다. 두 프로토콜의 비교는 다음과 같습니다:

1. 전송 프로토콜

  • HTTP/2: 전송 프로토콜로 TCP(Transmission Control Protocol)를 사용합니다. 이는 신뢰성이 있지만, 단일 손실 패킷이 후속 패킷의 전송을 지연시키는 선두 블로킹(HOL blocking) 문제를 겪을 수 있습니다.
  • HTTP/3: 전송 프로토콜로 QUIC(Quick UDP Internet Connections)를 사용하며, UDP(사용자 데이터그램 프로토콜) 위에 구축되어 있습니다. QUIC는 대기 시간을 최소화하고 선두 블로킹 문제를 제거하여 더 빠르고 효율적인 데이터 전송을 제공합니다.

2. 연결 설정

  • HTTP/2: 연결을 설정하기 위해 클라이언트와 서버 간에 여러 번의 왕복이 필요합니다. 여기에는 TCP 핸드셰이크와 TLS(전송 계층 보안) 협상이 포함됩니다.
  • HTTP/3: QUIC는 연결 및 보안 핸드셰이크를 단일 왕복으로 결합하여 더 빠른 연결 설정을 가능하게 하여 대기 시간을 줄입니다.

3. 다중화

  • HTTP/2: 다중화를 지원하여 단일 TCP 연결을 통해 여러 요청과 응답을 동시에 전송할 수 있으며, 이는 여러 연결의 필요성을 줄이고 성능을 개선합니다.
  • HTTP/3: 또한 다중화를 지원하지만 QUIC를 통해 이루어져 선두 블로킹 문제를 제거하고 성능을 더욱 향상시킵니다.

4. 암호화

  • HTTP/2: 암호화를 위해 TLS를 사용하지만 의무사항이 아니므로 일부 연결은 암호화되지 않을 수 있습니다.
  • HTTP/3: QUIC 프로토콜에 암호화가 내장되어 있어 모든 연결에 대해 필수적이며, 보안 및 개인 정보 보호를 강화합니다.

5. 오류 처리

  • HTTP/2: 하나의 스트림에서 발생한 오류가 공유 TCP 연결로 인해 다른 스트림에 영향을 줄 수 있어 성능 문제가 발생할 수 있습니다.
  • HTTP/3: QUIC는 스트림을 독립적으로 관리하므로 오류가 개별 스트림에 국한되어 오류 처리 개선과 다른 스트림에 대한 영향 감소를 제공합니다.

요약하자면, HTTP/3는 QUIC 프로토콜을 도입함으로써 HTTP/2를 개선하여 더 빠른 연결 설정, 선두 블로킹 제거 및 필수 암호화로 보안을 강화합니다. 이러한 개선 사항은 웹에서의 성능과 사용자 경험을 더욱 향상시킬 것으로 기대됩니다.

HTTP/3 호환성

HTTP/3는 현재 다양한 조직과 인터넷 회사에서 구현되고 있습니다. 그러나 HTTP/3는 여전히 개발 및 채택 단계에 있다는 점에 유의해야 합니다. HTTP/3의 기반이 되는 QUIC 프로토콜은 인터넷 엔지니어링 태스크 포스(IETF)에 의해 표준화되고 있습니다.

다음은 주요 브라우저 및 서버에 대한 지원 상태입니다:

브라우저 지원:

  • Google Chrome: Chrome 버전 79부터 HTTP/3가 지원됩니다.
  • Mozilla Firefox: Firefox 버전 78부터 HTTP/3가 지원됩니다.
  • Microsoft Edge: Edge 버전 92부터 HTTP/3가 지원됩니다.

서버 지원:

  • Nginx: Nginx 버전 1.19.10부터 HTTP/3가 지원됩니다.
  • Apache: Apache는 현재 HTTP/3에 대한 공식 지원이 없지만, HTTP/3 지원을 활성화하는 타사 모듈(예: quiche)이 있습니다.

HTTP/3가 지원되고 있지만, 그 광범위한 채택과 지원은 여전히 진행 중입니다. 일부 구버전의 브라우저와 서버는 HTTP/3를 지원하지 않을 수 있으므로, HTTP/3를 사용할 때 클라이언트와 서버 모두가 해당 프로토콜을 지원하는지 확인해야 합니다.

또한 HTTP/3는 QUIC 프로토콜을 기반으로 하기 때문에 HTTP/3가 제대로 작동하려면 네트워크 인프라(라우터, 방화벽 등)에서 QUIC 프로토콜을 지원해야 합니다. 시간이 지남에 따라 HTTP/3에 대한 지원이 더욱 광범위해지고 성숙해질 것으로 예상됩니다.

EdgeOne의 HTTP/3 지원

EdgeOne는 이제 HTTP/3 및 QUIC 프로토콜을 모두 지원합니다. HTTP/3는 더 빠른 연결 설정 및 데이터 전송 속도를 제공하며, 여러 요청 및 응답의 동시 전송을 위한 다중화를 지원하고, 혼잡 제어, 헤더 압축 등에서 개선을 이루어 대기 시간과 기다림을 현저히 줄이고 웹사이트 성능 및 사용자 경험을 향상시킵니다.