HTTP/3
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
HTTP/3는 QUIC 전송 프로토콜을 사용하는 HTTP/2의 후속 버전으로, IETF의 인터넷 초안에서 시작되었다. HTTP/1.1 및 HTTP/2와 달리 TCP 대신 QUIC를 사용하여 Head-of-line blocking 문제를 해결하고 전송 속도를 향상시킨다. 주요 웹 브라우저와 서버에서 HTTP/3을 지원하며, 다양한 프로그래밍 언어로 구현된 오픈 소스 라이브러리를 통해 구현할 수 있다. 2022년 6월 IETF는 HTTP/3을 RFC 9114에 제안된 표준으로 게시했다.
더 읽어볼만한 페이지
- HTTP - HTTPS
HTTPS는 HTTP에 보안 기능이 더해진 통신 규약으로, 웹 브라우저와 서버 간 통신을 암호화하여 보안을 강화하지만, 인증서 비용, 서버 부하, 혼합 콘텐츠 문제 등의 단점도 존재한다. - HTTP - HTTP 쿠키
HTTP 쿠키는 웹 서버가 사용자 브라우저에 저장하는 작은 텍스트 파일로, 웹 사이트가 방문 기록, 로그인 정보 등을 기억하여 HTTP의 상태 비저장성을 보완하고 세션 관리, 개인 설정, 사용자 추적 등에 활용되지만 개인 정보 보호 및 보안 문제에 대한 논란이 있다. - 응용 계층 프로토콜 - 실시간 전송 프로토콜
실시간 전송 프로토콜(RTP)은 스트리밍 미디어의 실시간 전송을 위해 설계된 프로토콜로, IP 네트워크에서 오디오/비디오 전송의 표준으로 사용되며, 멀티미디어 데이터 전송, 타임스탬프, 순서 제어, QoS 피드백 등을 제공한다. - 응용 계층 프로토콜 - D-Bus
D-Bus는 2002년에 시작된 프로세스 간 통신 시스템으로, 시스템 버스와 세션 버스를 통해 정보 공유, 모듈성, 권한 격리를 제공하며, 일대일 요청-응답 및 발행/구독 통신 방식을 지원한다. - 월드 와이드 웹 - 구글
구글은 래리 페이지와 세르게이 브린이 개발한 웹 검색 엔진에서 출발하여 검색 기술 혁신을 통해 유튜브, 안드로이드 등 다양한 서비스를 제공하는 세계적인 기술 기업으로 성장했지만, 개인정보보호 및 독점 논란에도 직면하고 있다. - 월드 와이드 웹 - 온라인 언론
온라인 언론은 인터넷을 통해 뉴스 및 정보를 제공하며, 디지털 기술 발달과 함께 성장하여 시민 저널리즘 부상, 정보 전달 속도 혁신 등의 특징을 보이지만 정보 신뢰성 문제, 전통 언론 쇠퇴 등의 과제를 안고 있다.
| HTTP/3 | |
|---|---|
| 일반 정보 | |
![]() | |
| 개발자 | 국제 인터넷 표준화 기구 (IETF) |
| 발표일 | 2022년 6월 |
| 기반 프로토콜 | QUIC |
| OSI 모델 계층 | 응용 계층 |
| 세부 정보 | |
| 표준 | HTTP/3은 RFC 9000과 같은 관련 RFC에 설명된 완료된 QUIC 프로토콜도 사용함 |
| 소개 날짜 | 2022년 6월 |
| 후속 | 없음 |
2. 역사
HTTP/3는 이전 버전(HTTP/1.1, HTTP/2)과 동일한 요청 메서드, 상태 코드, 메시지 필드를 사용하지만, 기본 전송 방식에서 차이가 있다. HTTP/1.1과 HTTP/2는 전송 계층으로 TCP를 사용하는 반면, HTTP/3는 QUIC를 사용한다.[8][9] QUIC는 UDP를 통해 사용자 공간 혼잡 제어를 사용하는 전송 계층 네트워크 프로토콜이다.
HTTP/3는 QUIC 워킹 그룹에서 채택한 인터넷 초안에서 시작되었다. 원래 제안은 "QUIC 전송 프로토콜을 사용하는 HTTP/2 시맨틱스"[8]였으며, 나중에 "QUIC 기반 하이퍼텍스트 전송 프로토콜(HTTP)"으로 이름이 변경되었다.[9]
2018년 10월 28일 메일링 리스트 토론에서 IETF HTTP 및 QUIC 워킹 그룹 의장인 마크 노팅엄은 HTTP-over-QUIC을 HTTP/3으로 변경할 것을 제안했다. 이는 "HTTP 시맨틱스를 와이어 프로토콜에 바인딩하는 또 다른 방식으로 명확히 식별하여 [...] 사람들이 QUIC과의 분리를 이해하도록 하기 위함"이었다.[10] 노팅엄의 제안은 며칠 후 IETF 회원들에게 받아들여졌다. HTTP 워킹 그룹은 HTTP/3 설계 과정에서 QUIC 워킹 그룹을 지원하고, 이후 게시 후 유지 관리를 담당하도록 위임되었다.[11]
HTTP/3에 대한 지원은 2019년 9월 크롬 (카나리아 빌드)에 추가된 후 안정적인 빌드에 도달했지만 기능 플래그에 의해 비활성화되었다. 2020년 4월에 기본적으로 활성화되었다.[5] 파이어폭스는 2019년 11월 기능 플래그를 통해 HTTP/3에 대한 지원을 추가했으며[12][13][14] 2021년 4월 Firefox 88에서 기본적으로 활성화하기 시작했다.[12][6] HTTP/3에 대한 실험적 지원은 2020년 4월 8일 Safari Technology Preview에 추가되었으며[15], iOS 14 및 macOS 11과 함께 제공되는 Safari 14에 포함되었지만,[7][16] macOS와 iOS 모두에서 Safari 16까지 기본적으로 비활성화되어 있다.
2022년 6월 6일, IETF는 HTTP/3을 제안된 표준으로 게시했다.[11]
3. HTTP/1.1 및 HTTP/2와의 비교
QUIC으로의 전환은 HTTP/2의 주요 문제점인 HOL 블로킹을 해결하기 위한 것이다. QUIC은 네이티브 다중화를 제공하여 손실된 패킷이 해당 스트림에만 영향을 미치도록 한다.[10][11]
3. 1. 기술적 특징
요청 메서드, 상태 코드, 메시지 필드와 같은 HTTP의 의미는 버전 간에 일관성이 있다. 이러한 요소들은 일반적으로 모든 버전에 적용된다. 차이점은 이러한 의미를 기본 전송 방식에 어떻게 매핑하는지에 있다. HTTP/1.1과 HTTP/2는 모두 전송 계층으로 TCP를 사용한다. HTTP/3은 QUIC를 사용하는데, 이는 UDP를 통해 사용자 공간 혼잡 제어를 사용하는 전송 계층 네트워크 프로토콜이다.
QUIC으로의 전환은 HTTP/2의 주요 문제점인 "HOL 블로킹"을 해결하는 것을 목표로 한다. HTTP/2 다중화의 병렬 특성이 TCP의 손실 복구 메커니즘에 보이지 않기 때문에, 손실되거나 순서가 바뀐 네트워크 패킷은 해당 트랜잭션이 손실된 패킷의 영향을 받았는지 여부에 관계없이 모든 활성 트랜잭션 처리가 정지되는 현상을 경험하게 한다. QUIC은 네이티브 다중화를 제공하기 때문에, 손실된 패킷은 데이터가 손실된 스트림에만 영향을 미친다.
제안된 DNS 리소스 레코드 SVCB(서비스 바인딩) 및 HTTPS를 사용하면 이전 HTTP 버전을 통해 Alt-Svc 헤더를 먼저 받지 않고도 연결할 수 있으므로 TCP의 1 RTT 핸드셰이킹이 제거된다.[17][18] HTTPS 리소스 레코드에 대한 클라이언트 지원은 Firefox 92, iOS 14부터 시작되었으며, Safari 14 지원이 보고되었고, Chromium은 플래그 뒤에서 이를 지원한다.[19][20][21]
4. 구현 현황
HTTP/3은 여러 소프트웨어에서 구현되어 지원되고 있다.
주요 웹 브라우저로는 크롬, 엣지, 파이어폭스, 사파리 등이 HTTP/3을 지원한다.[12][22][6][23][24]
HTTP/3을 지원하는 주요 웹 서버에는 LiteSpeed Web Server, Caddy, Nginx, Microsoft IIS, HAProxy 등이 있다.[31][32][33][34][35][36][37][38]
QUIC 및 HTTP/3 클라이언트 또는 서버 로직을 구현하는 다양한 오픈 소스 라이브러리들이 존재한다.[25]
4. 1. 클라이언트
크롬, 엣지, 파이어폭스, 사파리는 HTTP/3을 지원한다.| 브라우저 | 구현된 버전 (기본적으로 비활성화됨) | 출시된 버전 (기본적으로 활성화됨) | 설명 | ||
|---|---|---|---|---|---|
| 크롬 | 안정화 빌드 (79) | 2019년 12월 | 87[12] | 2020년 4월[22] | 이전 버전은 QUIC의 다른 초안을 구현했다. |
| 엣지 | 안정화 빌드 (79) | 2019년 12월 | 87 | 2020년 4월 | 엣지 79는 크로미움을 기반으로 한 첫 번째 버전이었다. |
| 파이어폭스 | 안정화 빌드 (72.0.1) | 2020년 1월 | 88[6] | 2021년 4월[23] | |
| 사파리 | 안정화 빌드 (14.0) | 2020년 9월 | 16.4 | 2023년 3월 | 애플은 사파리 16.4부터 일부 사파리 사용자에게 HTTP/3 지원을 테스트하고 있다.[24] |
4. 2. 서버
- LiteSpeed Web Server (및 OpenLiteSpeed) 6.0.2 버전(2021년 6월 7일 출시)은 HTTP/3을 기본적으로 활성화한 최초의 버전이다.[31]
- Caddy 웹 서버 v2.6.0 (2022년 9월 20일 출시)은 HTTP/3을 기본적으로 활성화했다.[32]
- Nginx는 1.25.0 버전(2023년 5월 23일 출시)부터 HTTP/3을 지원한다. HTTP/3 지원을 포함한 Nginx 기술 미리보기는 2020년 6월에 출시되었고,[33] HTTP/3을 지원하는 Nginx 바이너리 패키지는 2023년 2월에 출시되었다.[34]
- Cloudflare는 quiche HTTP/3 라이브러리를 통합하는 Nginx용 패치를 배포한다.[35]
- Microsoft IIS는 Windows Server 2022/Windows 11에서 HTTP/3 지원이 기본적으로 활성화되어 있다.[36]
- HAProxy는 2.6 버전(2022년 5월 31일 출시)부터 QUIC를 통한 HTTP/3을 지원한다.[37][38]
4. 3. 라이브러리
다음은 QUIC 및 HTTP/3에 대한 클라이언트 또는 서버 로직을 구현하는 오픈 소스 라이브러리들이다.[25]| 이름 | 클라이언트 | 서버 | 프로그래밍 언어 | 회사 | 저장소 |
|---|---|---|---|---|---|
| lsquic | 예 | 예 | C | LiteSpeed | github.com |
| nghttp3 | 예 | 예 | C | github.com | |
| h2o | 아니오 | 예 | C | github.com | |
| libcurl[26][27] | 예 | 아니오 | C | github.com | |
| MsQuic[28] | 예 | 예 | C | 마이크로소프트 | github.com |
| proxygen | 예 | 예 | C++ | 페이스북 | github.com |
| Cronet | 예 | 예 | C++ | 구글 | github.com |
| .NET[29] | 예 | 예 | C# (MsQuic 사용)[30] | 마이크로소프트 | github.com |
| quic-go | 예 | 예 | Go | github.com | |
| http3 | 예 | 예 | Haskell | github.com | |
| Kwik | 예 | 예 | Java | github.com | |
| Flupke | 예 | 예 | Java | bitbucket.org | |
| aioquic | 예 | 예 | Python | github.com | |
| quiche | 예 | 예 | Rust | 클라우드플레어 | github.com |
| neqo | 예 | 예 | Rust | 모질라 | github.com |
| quinn | 예 | 예 | Rust | github.com | |
| s2n-quic | 예 | 예 | Rust | 아마존 웹 서비스 | github.com |
참조
[1]
웹사이트
What is HTTP/3?
https://www.cloudfla[...]
2022-07-12
[2]
간행물
A first look at HTTP/3 adoption and performance
https://www.scienced[...]
2022-04-01
[3]
웹사이트
HTTP/3 is Fast
https://requestmetri[...]
2022-07-01
[4]
웹사이트
Usage of HTTP/3 for websites
https://w3techs.com/[...]
W3Techs
2024-08-11
[5]
웹사이트
Enabling QUIC in tip-of-tree
https://groups.googl[...]
2021-04-08
[6]
웹사이트
QUIC and HTTP/3 Support now in Firefox Nightly and Beta
https://hacks.mozill[...]
2021-04-17
[7]
웹사이트
Safari 14 Release Notes
https://developer.ap[...]
2020-12-04
[8]
IETF
HTTP/2 Semantics Using The QUIC Transport Protocol
Internet Engineering Task Force
2016-07-08
[9]
뉴스
HTTP-over-QUIC to be renamed HTTP/3
https://www.zdnet.co[...]
2018-11-12
[10]
간행물
Identifying our deliverables
https://mailarchive.[...]
2018-10-28
[11]
웹사이트
Hypertext Transfer Protocol Charter
https://datatracker.[...]
2020-09-02
[12]
웹사이트
'"HTTP/3" {{!}} Can I use... Support tables for HTML5, CSS3, etc'
https://caniuse.com/[...]
2024-08-11
[13]
웹사이트
Daniel Stenberg announces HTTP/3 support in Firefox Nightly
https://twitter.com/[...]
2019-11-05
[14]
웹사이트
Cloudflare, Google Chrome, and Firefox add HTTP/3 support
https://www.zdnet.co[...]
2019-09-27
[15]
웹사이트
Release Notes for Safari Technology Preview 104
https://webkit.org/b[...]
2020-08-07
[16]
웹사이트
Apple's Safari Adds Support for HTTP3 in iOS 14 and macOS 11
https://www.iphonein[...]
2021-06-25
[17]
웹사이트
HTTPS RR
https://developer.mo[...]
Mozilla
2022-10-25
[18]
IETF
Service binding and parameter specification via the DNS
Internet Engineering Task Force
2020-06-12
[19]
웹사이트
Firefox 92 for developers
https://developer.mo[...]
Mozilla Corporation
2021-09-07
[20]
웹사이트
Feature: HTTP->HTTPS redirect for HTTPS DNS records
https://chromestatus[...]
Google Inc.
2022-10-25
[21]
웹사이트
What's the use case of SVCB (type 65, service binding) RR
https://serverfault.[...]
Stack Exchange Inc.
2021-08-24
[22]
웹사이트
Enabling QUIC in tip-of-tree
https://groups.googl[...]
2021-04-09
[23]
웹사이트
Firefox Release Owners - MozillaWiki
https://wiki.mozilla[...]
2021-04-09
[24]
웹사이트
HTTP/3 support shipped in Safari 14.0
https://github.com/F[...]
2023-04-07
[25]
웹사이트
QUIC Implementations
https://github.com/q[...]
2021-04-08
[26]
웹사이트
First HTTP/3 with curl
https://daniel.haxx.[...]
Daniel Stenberg
2019-10-02
[27]
웹사이트
HTTP3 (and QUIC)
https://github.com/c[...]
Daniel Stenberg
2023-08-27
[28]
웹사이트
MsQuic is Open Source
https://techcommunit[...]
2020-04-28
[29]
웹사이트
HTTP/3 support in .NET 6
https://devblogs.mic[...]
2021-09-17
[30]
웹사이트
HTTP/3 support in .NET 6
https://devblogs.mic[...]
2022-01-12
[31]
웹사이트
LiteSpeed Web Server Release Log - LiteSpeed Technologies
https://www.litespee[...]
2022-02-12
[32]
웹사이트
Release 2.6.0 · caddyserver/caddy
https://github.com/c[...]
2022-09-20
[33]
웹사이트
Introducing a Technology Preview of NGINX Support for QUIC and HTTP/3
https://www.nginx.co[...]
2020-06-11
[34]
웹사이트
Binary Packages Now Available for the Preview NGINX QUIC+HTTP/3 Implementation
https://www.nginx.co[...]
2023-03-30
[35]
웹사이트
Experiment with HTTP/3 using NGINX and quiche
https://blog.cloudfl[...]
2019-11-09
[36]
웹사이트
Use ASP.NET Core with HTTP/3 on IIS
https://docs.microso[...]
2022-04-29
[37]
웹사이트
Announcing HAProxy 2.6
https://www.haproxy.[...]
2022-05-31
[38]
웹사이트
QUIC Implementation in HAProxy
https://www.youtube.[...]
[39]
간행물
Hypertext Transfer Protocol (HTTP) over QUIC
https://tools.ietf.o[...]
2018-10-24
[40]
간행물
Identifying our deliverables
https://mailarchive.[...]
2018-10-28
[41]
뉴스
HTTP-over-QUIC to be renamed HTTP/3 {{!}} ZDNet
https://www.zdnet.co[...]
2018-11-12
[42]
웹사이트
CloudflareとGoogleのChrome(Canary)がHTTP/3のサポート開始 Firefox(Nightly)も間もなく
https://www.itmedia.[...]
ITmedia
2019-09-27
[43]
웹사이트
HTTP/3
https://datatracker.[...]
IETF
2022-06-08
[44]
IETF
Hypertext Transfer Protocol Version 3 (HTTP/3)
국제 인터넷 표준화 기구
2020-09-25
[45]
웹인용
Usage of HTTP/3 for websites
https://w3techs.com/[...]
W3Techs
2020-10-12
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
