HTTP/2와 HTTP/3를 TCP와 UDP 관점에서 비교하면, 프로토콜의 설계와 동작 방식에서 중요한 차이점을 이해할 수 있습니다.
HTTP/2 (TCP 기반)
HTTP/2는 TCP(Transmission Control Protocol)를 기반으로 작동합니다.
TCP의 특징
🔵 연결 지향적: 데이터를 전송하기 전에 3-way handshake라는 연결 설정 절차를 거칩니다.
🔵 신뢰성 보장: 모든 패킷이 순서대로 도착해야 하며, 손실된 패킷은 재전송됩니다.
🔴 장점: 신뢰성이 높고, 전송된 데이터의 무결성을 보장합니다.
🔴 단점: 손실된 패킷 하나 때문에 전체 스트림이 지연될 수 있는 Head-of-Line Blocking 문제가 발생합니다.
HTTP/2의 개선 사항
🟡 TCP의 Head-of-Line Blocking 문제를 해결하기 위해 멀티플렉싱(여러 요청을 동시에 처리)을 도입했지만, 여전히 TCP의 근본적인 특성 때문에 데이터 전송의 지연이 발생할 수 있습니다.
🟡 헤더 압축 및 서버 푸시 기능으로 성능을 개선하려 했으나, 네트워크의 신뢰성 문제에서는 한계가 존재합니다.
HTTP/3 (UDP 기반)
HTTP/3는 UDP(User Datagram Protocol) 기반의 QUIC(Quick UDP Internet Connections) 프로토콜을 사용합니다.
UDP의 특징
🔵 비연결 지향적: 연결 설정 과정 없이 데이터를 바로 전송하며, 패킷의 순서나 신뢰성은 보장하지 않습니다.
🔴 장점: 빠른 전송, 헤더와 핸드셰이크 없이 빠른 통신 가능.
🔴 단점: 패킷 손실이나 순서 보장이 없는 비신뢰성.
HTTP/3의 개선 사항
🟡 QUIC은 UDP 기반이지만, TCP의 신뢰성을 구현하는 요소들을 추가했습니다. 패킷 손실에도 전체 연결이 지연되지 않도록 각 스트림이 독립적으로 처리됩니다. 이를 통해 Head-of-Line Blocking 문제를 해결합니다.
🟡 핸드셰이크 절차가 UDP 기반으로 매우 간소화되어, TCP와 비교해 훨씬 빠르게 연결을 설정하고 데이터를 전송할 수 있습니다.
🟡 TLS 암호화가 기본적으로 통합되어 보안성이 강화되었습니다.
핵심 비교
HTTP/2는 TCP 기반이기 때문에 신뢰성이 높지만, 연결 설정 및 패킷 재전송으로 인한 지연이 발생할 수 있습니다.
HTTP/3는 UDP 기반의 QUIC을 사용하여, TCP의 신뢰성과 UDP의 빠른 전송 속도를 동시에 추구하며, 지연을 최소화합니다.
이로 인해 HTTP/3는 웹 성능이 중요한 애플리케이션에서 더 나은 성능을 발휘할 수 있습니다.
출처 | ChatGPT
'네트워크 > HTTP' 카테고리의 다른 글
<link> 태그 rel="search" 속성 설명 | ChatGPT (0) | 2024.09.28 |
---|---|
프리플라이트 preflight 란 무엇인가 | ChatGPT (1) | 2024.09.15 |
HTTP 요청헤더 'X-Powered-By' 와 'Server' | ChatGPT (0) | 2023.11.23 |
X-Aspnet-Version 이란 | ChatGPT (0) | 2023.11.19 |