HTTP/3과 HTTP/2의 비교
HTTP/3는 자체적으로 스트림을 다루는 전송 프로토콜인 QUIC을 위해 설계되었다.
HTTP/2는 TCP를 위해 설계되었으므로 HTTP 계층에서 스트림을 다룬다.
유사점
이 두 프로토콜을 사실상 같은 기능을 제공한다.
두 프로토콜은 스트림을 제공한다.
두 프로토콜은 서버 푸시를 지원한다
두 프로토콜은 헤더 압축을 제공한다. QPACK과 HPACK은 설계상 비슷하다.
두 프로토콜은 스트림을 이용해서 하나의 연결을 통해 멀티플랙싱을 제공한다.
두 프로토콜은 스트림에 우선순위를 정한다.
차이점
세부 내용에 차이점이 있는데 주로 HTTP/3의 QUIC 사용 때문에 생긴다.
QUIC의 0-RTT 핸드쉐이크 덕에 HTTP/3에서는 이른 데이터 지원이 더 낫게 잘 동작한다. TCP Fast Open과 TLS는 더 적은 데이터를 보내지만, 종종 문제점에 직면한다.
HTTP/3는 QUIC 덕에 TCP + TLS보다 훨씬 더 빠른 핸드쉐이크를 제공한다.
HTTP/3에는 안전하지 않거나 암호화되지 않은 버전이 없다. 인터넷에서 드물기는 하지만 HTTP/2는 HTTPS 없이 구현하고 사용할 수 있다.
HTTP/2가 ALPN 확장을 이용하여 즉시 TLS 핸드쉐이크 협상을 완료할 수 있는 반면 HTTP/3는 QUIC을 사용하므로 클라이언트에 이 사실을 알리기 위해
Alt-Svc:
헤더 응답이 먼저 있어야 한다.
Last updated