HTTP/2는 무엇입니까?
HTTP / 2는 HTTP 프로토콜 (RFC 7540)로 표준화 된 중요한 개정이며, 이진 framing, Multiplexing, 헤더 압축 및 서버가 HTTP / 1.1에서 웹 성능을 극적으로 개선하기 위해 푸시합니다.HTTP/2 대 HTTP/1.1
| 제품 정보 | HTTP / 1.1의 | HTTP / 2의 |
|---|---|---|
| 지원하다 | 텍스트 기반 | 투자정보 |
| 연결하기 | 다중 (주당 6-8) | 단일 다중화 |
| 자주 묻는 질문 | 회사연혁 | 병렬 스트림 |
| Header 압축 | 이름 * | HPACK 압축 |
| 서버 푸시 | 이용안내 | 지원되는 |
| 회사연혁 | 이름 * | Stream 우선 순위 |
HTTP / 2 작동 방법
HTTP/1.1 (Head-of-Line Blocking):
Connection 1: Request A ──────────► Response A
Connection 2: Request B ──────────► Response B
Connection 3: Request C ──────────► Response C
(Multiple connections, sequential per connection)
HTTP/2 (Multiplexing):
Single Connection:
├── Stream 1: Request A ──► Response A
├── Stream 2: Request B ──► Response B
├── Stream 3: Request C ──► Response C
└── All interleaved on same connection
핵심 특징
Binary Framing 레이어
HTTP/2 Frame Structure:
┌─────────────────────────────────────┐
│ Length (24 bits) │
├─────────────────────────────────────┤
│ Type (8 bits) │ Flags (8 bits) │
├─────────────────────────────────────┤
│ Stream Identifier (32 bits) │
├─────────────────────────────────────┤
│ Frame Payload (variable) │
└─────────────────────────────────────┘
HPACK 헤더 압축
| 채용정보 | HTTP/1.1 헤더 | HTTP / 2 헤더 |
|---|---|---|
| 첫 번째 요청 | ~800 바이트 | ~800 바이트 |
| 자주 묻는 질문 | ~800 바이트 각 | ~20-50 바이트 (indexed) |
스트림 우선 순위
Priority Tree:
Root (connection)
├── CSS (weight: 256, high priority)
├── JavaScript (weight: 220)
└── Images (weight: 110, lower priority)
서버 요구 사항
| 계정 관리 | HTTP/2 지원 |
|---|---|
| 사이트맵 | 평균 3+ |
| 아파치 | 2.4.17+ (mod http2) |
| 노드.js | 8.4+ (native) |
| 아이리스 | 윈도우 10/서버 2016+ |
성능 혜택
- 감소된 대기권 : 단 하나 연결은 TCP handhake overhead를 삭제합니다
- 더 나은 압축 : 반복 요구에 85-90% 우두머리 크기 감소
- 패럴 로드 : 모든 리소스로드 동시에
- 서버 푸시 : Proactively는 브라우저 요청 전에 리소스를 보냅니다.
최고의 연습
1. Enable TLS: HTTP/2는 실제로 HTTPS를 요구합니다 (브라우저는 그것을 시행합니다)
2. Reduce 도메인 sharding : 여러 도메인은 이제 성능에 상처
3. 파일 중지 : Multiplexing 은 더 적은 필요
4. 서버 푸시 사용: 중요한 자료만 푸시
5. Monitor 성능: HTTP/2를 검증하면 특정 사용 사례를 개선합니다.
HTTP/2는 네트워크 연결의 더 효율적인 사용을 통해 대부분의 웹 사이트에 중요한 성능 개선을 제공합니다.