HTTP/1.1과 HTTP/2의 주요 차이점 이해
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
웹 개발자, 서버 관리자, 성능 최적화 담당자
- 난이도: 중간 (기초 네트워크 지식 필요)
핵심 요약
- HTTP/2는 이진 프로토콜로, HTTP/1.1의 텍스트 기반 프로토콜보다 속도와 오류율이 향상됨
- HTTP/2는 멀티플렉싱과 헤더 압축(HPACK)을 지원하여 요청 병렬 처리와 네트워크 오버헤드 감소 가능
- 서버 푸시(Server Push) 및 요청 우선순위 설정 기능으로 응답 시간 단축과 리소스 최적화 가능
섹션별 세부 요약
1. HTTP/1.1의 한계
- 순차적 요청 처리: 하나의 TCP 연결당 한 번의 요청만 허용, 블로킹 발생
- 다중 연결 필요: 리소스 다운로드를 위해 브라우저가 복수 TCP 연결 생성, 지연 증가
- 헤더 중복: 각 요청에 반복적인 헤더 데이터 전송, 네트워크 효율성 저하
- 서버 푸시 지원 없음: 클라이언트 요청 전 리소스 전송 불가
2. HTTP/2의 주요 개선 사항
- 이진 프로토콜: 텍스트보다 처리 속도 향상 및 오류 발생 가능성 감소
- 멀티플렉싱: 단일 연결로 다중 요청/응답 병렬 처리 가능, 연결 수 감소
- 헤더 압축(HPACK): 헤더 크기 최대 60% 감소, 네트워크 효율성 향상
- 서버 푸시: 클라이언트 요청 전 리소스 사전 전송 가능, 최초 렌더링 시간 단축
- 요청 우선순위: CRITICAL/BACKGROUND 등급 설정으로 성능 최적화
3. 프로토콜 비교 표
| 기능 | HTTP/1.1 | HTTP/2 |
|---|---|---|
| 프로토콜 타입 | Text
| Binary
|
| 멀티플렉싱 | ❌ | ✅ (1연결 → N요청) |
| 헤더 압축 | ❌ | ✅ (HPACK 사용) |
| 서버 푸시 | ❌ | ✅ |
| 요청 우선순위 | ❌ | ✅ |
4. 시각적 비교 설명
- HTTP/1.1: 각 요청/응답 쌍이 별도의 TCP 연결 필요, 연결 수 증가 → 지연 증가
- HTTP/2: 단일 연결로 병렬 처리 가능, 스트림 기반 통신 → 네트워크 효율성 향상
결론
- HTTP/2 도입 필수: 현대 웹 앱의 성능, 확장성, 응답 속도 요구사항 충족
- 실무 적용 팁:
- TLS 1.2 이상 지원 서버에서 HTTP/2 활성화
- HPACK 압축 활용해 헤더 크기 최적화
- 서버 푸시로 Critical 리소스 사전 로딩
- 요청 우선순위 설정을 통해 렌더링 시간 최소화