"우리가 매일 사용하는 웹 브라우저는 어떻게 점점 더 빨라지고 있을까요?"
"정보처리기사, 전산직 공무원, IT 서비스 면접에서 단골로 출제되는 HTTP/1.1, HTTP/2, HTTP/3의 핵심 차이점은 무엇일까요?"
응용 계층(Application Layer)의 대표 프로토콜인 HTTP(HyperText Transfer Protocol)는 웹상에서 클라이언트와 서버가 데이터를 주고받기 위한 통신 규약입니다. 텍스트 기반의 초기 방식에서 출발하여, 현재는 전송 계층의 한계를 극복하는 혁신적인 버전으로 발전해 왔습니다.
이번 글에서는 HTTP/1.1의 한계부터 HTTP/2의 멀티플렉싱, 그리고 UDP(QUIC) 기반 HTTP/3의 동작 원리까지 한눈에 이해하기 쉽게 정리해 드립니다!
1. 텍스트 기반과 커넥션 재사용: HTTP/1.1
HTTP/1.1은 기존 HTTP/1.0의 매번 연결을 끊고 새로 맺는 비효율성을 개선하며 수십 년간 웹의 표준으로 자리 잡았습니다.
- Keep-Alive 기법 도입: 요청마다 TCP Handshake를 반복하지 않고, 한 번 맺은 TCP 커넥션을 일정 시간 동안 유지하여 재사용합니다.
- 파이프라이닝(Pipelining) 지원: 응답을 기다리지 않고 여러 요청을 연속해서 보낼 수 있도록 설계되었습니다.
HTTP/1.1의 결정적 한계
- HOLB (Head-of-Line Blocking): 앞선 요청의 처리가 지연되면 뒤따르는 요청들도 줄지어 대기해야 하는 병목 현상이 발생합니다.
- 헤더 중복 및 비대화: 매 요청마다 수많은 텍스트 헤더가 중복되어 보내지므로 네트워크 대역폭 낭비가 심합니다.
2. 성능의 비약적 도약: HTTP/2 (TCP 기반의 멀티플렉싱)
Google의 SPDY 프로토콜을 기반으로 제정된 HTTP/2는 기존 HTTP/1.1의 HOLB 및 속도 저하 문제를 획기적으로 해결했습니다.
텍스트 대신 0과 1의 바이너리 프레임 단위로 데이터를 분할하여 전송 효율과 파싱 속도를 대폭 향상했습니다.
단 하나의 TCP 커넥션 안에서 여러 개의 독립적인 **스트림(Stream)**을 만들어, 요청과 응답을 순서에 상관없이 동시 교차 전송합니다. 이를 통해 응용 계층의 HOLB 문제를 완전 해결했습니다.
중복 헤더를 압축 테이블(HPACK)로 효율화하고, 클라이언트가 요청하지 않은 리소스(CSS, JS 등)도 서버가 미리 전송해 주는 서버 푸시를 지원합니다.
3. TCP의 한계를 넘어서: HTTP/3 (QUIC / UDP 기반)
HTTP/2가 응용 계층의 HOLB를 해결했지만, 하부의 전송 계층(TCP) 자체가 가진 한계는 넘지 못했습니다. TCP 전송 중 패킷 1개만 손실되어도 전체 스트림이 대기하는 TCP 수준의 HOLB가 발생했기 때문입니다.
이를 극복하기 위해 HTTP/3는 전송 계층으로 TCP 대신 UDP 기반의 QUIC 프로토콜을 도입했습니다.
QUIC(Quick UDP Internet Connections)의 핵심 특징
- 빠른 연결 설정: TCP의 3-way Handshake와 TLS 암호화 연결 과정을 하나로 통합하여 0-RTT 또는 1-RTT만에 통신을 시작합니다.
- 독립적 멀티플렉싱: 패킷 손실이 발생해도 손실된 해당 스트림만 영향을 받고, 나머지 스트림은 전혀 지연 없이 전송됩니다.
- Connection ID 활용: IP 주소가 바뀌어도(예: Wi-Fi에서 LTE로 전환) 기존 Connection ID를 유지하므로 끊김 없는 재연결이 가능합니다.
💡 한눈에 비교하는 HTTP/1.1 vs HTTP/2 vs HTTP/3 요약표 (시험 필수!)
| 구분 | HTTP/1.1 | HTTP/2 | HTTP/3 |
| 전송 계층 프로토콜 | TCP | TCP | UDP (QUIC) |
| 데이터 형식 | Plain Text (텍스트) | Binary Frame | Binary Frame |
| 커넥션 및 전송 방식 | 요청/응답 직렬 전송 | 단일 TCP 연결 멀티플렉싱 | UDP 기반 독립적 멀티플렉싱 |
| HOLB 문제 | 응용 계층 HOLB 심함 | 응용 계층 해결 / TCP HOLB 존재 | 완벽 해결 (TCP/응용 모두 극복) |
| 헤더 압축 | 미지원 | HPACK 방식 | QPACK 방식 |
| 연결 설정 지연 | TCP Handshake + TLS (2~3 RTT) | TCP Handshake + TLS (2~3 RTT) | QUIC 통합 연결 (0~1 RTT) |
📌 시험 핵심 기출 포인트 체크
- HTTP/1.1의 한계: 파이프라이닝의 HOLB(Head-of-Line Blocking) 문제와 텍스트 헤더 중복 문제 개념을 명확히 알아두세요.
- HTTP/2의 멀티플렉싱: 단일 TCP 커넥션에서 여러 스트림을 사용해 병렬 전송을 구현한다는 점이 핵심입니다.
- HTTP/3와 UDP(QUIC): HTTP/3가 UDP 기반이라는 점과, IP 변경 시에도 연결을 유지해 주는 Connection ID 개념이 단골 출제 포인트입니다.