[clearfix]
1. 개요
HTTP의 3번째 메이저 버전으로 HTTP/2의 차기 버전이다. QUIC라는 이름으로 구글에서 개발되었으며 이후 2022년 6월 6일, IETF RFC 9114로 표준화되면서 HTTP/3로 변경되었다.2. 상세
HTTP/1 및 HTTP/2가 TCP로 통신하는 것과는 달리 HTTP/3는 UDP 기반의 QUIC 프로토콜을 사용하여 통신한다. 원래는 이름이 HTTP-over-QUIC였지만, IETF 내에 있는 QUIC 작업 그룹의 의장인 마크 노팅업이 HTTP/3라는 이름을 제안하여 변경되었다. HTTP/3의 기반이 되는 QUIC도 역시 웹 표준이며 RFC 9000으로 표준화되어 있다.HTTP/2 대비하여 가장 큰 장점 3가지는, Zero RTT(Round Trip Time), 패킷 손실에 대한 빠른 대응, 사용자 IP가 바뀌어도 연결이 유지되는 것이다. 일반적인 웹 환경에서는 HTTP/2와 HTTP/3의 차이가 크지 않을 수 있으나, 동영상 서비스 등에서는 큰 차이를 보인다. 예를들어, 모바일 기기처럼 인터넷 연결 상태가 고르지 못한 경우라든지, WiFi에 연결하여 동영상을 시청하는 도중에 자리를 이탈하여 셀룰러 신호로 바뀌더라도 HTTP/3로 연결되어 있으면 영상을 끊김없이 시청할 수 있다. 패킷 전송에 있어서 제약이 거의 없는 비연결성 전송 계층을 기반으로 TCP 프로토콜의 무결성 보장 알고리즘과 SSL이 이식됨으로써 높은 성능과 동시에 충분히 괜찮은 정확성과 부인방지 특성을 충족시켰다.
HTTP/3와 그 기반 기술인 QUIC은 TLS 암호화를 기본적으로 사용한다. 다만, TLS가 TCP를 염두에 두고 설계되어 있기 때문에 QUIC의 원저작자인 구글의 알고리즘대로 일부 수정을 거쳐서 사용한다. UDP와 TLS가 결합된 기술로는 DTLS라는 기술도 있지만 'TCP의 재구현'이 목표 중 하나인 QUIC와는 지향하는 바가 다르다.
구글 자체 프로토콜이었던 QUIC가 HTTP/3로 표준화됨에 따라서 IETF 측에서는 구글이 독자적으로 개발했던 QUIC 프로토콜의 파편화된 구현 알고리즘을 기존의 다른 프로토콜과 상호운용이 용이하도록 대폭 수정하는 과정을 진행중이다. QUIC 내에서 IETF 표준 대비 가장 큰 파편화를 보인 부분이 보안 소켓이다. IETF는 구글이 자체적으로 개발한 보안 소켓을 IETF 표준 프로토콜인 DTLS로 대체하는 QUIC over DTLS 표준을 만들고 있었지만 QUIC 워킹 그룹에서 다른 방법을 모색하는 것으로 결론짓고 해당 표준의 제작을 중단했다. #
성능이 떨어지는 컴퓨터는 QUIC 프로토콜로 인해 크롬 브라우저가 느려진다. 그럴 때는 주소창에 "chrome://flags/"를 입력해 Experiments로 들어간 다음 Experimental QUIC protocol을 검색하여 비활성화해주면 빨라질 수 있다.
3. 지원
표준화는 2022년 6월에 되어서야 완료되었지만 표준화 전부터 대부분의 주요 웹 브라우저에서 선제적으로 적용하였다.3.1. 웹 브라우저
웹 브라우저의 지원 내역은 Can I use...의 HTTP/3 protocol에 정리되어 있다.- Chrome은 2019년 12월의 버전 79부터 기능이 추가 되었고, 2020년 11월의 버전 87부터 기본적으로 활성화 되었다.
- Safari는 2020년 9월의 macOS 11에 포함된 사파리부터 기능이 추가 되었다. 2023년 3월의 16.4 버전부터 기본적으로 부분 활성화 되었다.[1]
- Edge는 2020년 1월의 버전 79부터 기능이 추가 되었고, 2020년 11월의 버전 87부터 기본적으로 활성화 되었다.
- Firefox는 2020년 1월의 버전 72부터 기능이 추가 되었고, 2021년 4월의 버전 88부터 기본적으로 활성화 되었다.
3.2. 서비스
Cloudflare에서 2019년 9월부터 일반 사용자에게도 제공하기 시작했다. CDN 서비스를 사용 중이라면, 네트워크 탭에서 스위치를 켜는 것만으로도 적용 가능하다. #아마존 웹 서비스에도 일부 서비스에 HTTP/3을 쓸 수 있게 하는 옵션이 있다.
3.3. 웹 서버
- NGINX는 2023년 5월부터 메인스트림[2] 버전인 1.25.0 부터 HTTP/3를 공식 지원하기 시작했다.[3]
- LiteSpeed는 2021년 6월부터 HTTP/3를 기본적으로 제공하기 시작했다.[4]
- 아파치 HTTP 서버의 HTTP/3 지원 계획은 아직 발표되지 않았다.
- MS IIS의 경우, 윈도 서버 2022부터 HTTP/3를 지원하기 시작했다.
- Caddy 웹 서버는 2022년 9월부터 HTTP/3를 지원하며, 프로토콜의 별도 설정이 없다면 HTTP/3를 우선으로 제공한다.[5]
3.4. 광고 차단 앱
- AdGuard의 경우 자사 DNS 한정이지만 HTTP/3를 지원하며 로우레벨 설정으로 필터링이 가능하다.
4. HTTP/3 지원 사이트
HTTP/3를 지원하는 주요 웹사이트로는,- 구글[6]
- 유튜브
- 구글이 제공 중인 대부분에 서비스에 적용되어 있다.
- 클라우드플레어
- 클라우드플레어를 사용하는 모든 웹사이트에는 기본적으로 적용된다.[7]
- 네이버[8]
- 나무위키[9]
- 페이스북
- 넷플릭스
- 줌 비디오 커뮤니케이션
5. 외부 링크
[1]
iCloud Private Relay를 사용하는 경우엔 모든 Safari 연결이 QUIC로 진행된다.
[2]
NGINX에서는 개발버전을 mainstream, 안정화 버전을 stable이라고 부른다. 개발버전은 홀수, 안정화 버전은 짝수 번호이다.
[3]
NGINX에서 HTTP/3 적용방법
[4]
LiteSpeed 릴리즈 노트
[5]
Caddy 웹서버 릴리즈 노트
[6]
구글은 크로뮴 대상으로는 한참 전부터 h3-Q050등으로 HTTP/3을 제공하고 있었다.
[7]
그외에도
아카마이,
클라우드프론트, fastly등 메이저 CDN에는 모두 적용되어 있다.
[8]
2022년 전면 도입 완료
관련 기사
[9]
the seed를 사용하는 모든 위키가 해당.