HTTP 1.1
HTTP 1.1은 HTTP 1.0의 매 요청마다 연결을 새로 만드는 비용을 줄이기 위해 지속 커넥션과 파이프라이닝을 도입한 HTTP 버전입니다.
핵심 특징
- 지속 커넥션: 기본적으로 TCP 연결을 재사용합니다.
- 파이프라이닝: 여러 요청을 연속해서 보낼 수 있습니다.
- Host 헤더 필수화: 하나의 IP에서 여러 도메인을 운영하는 가상 호스팅을 지원합니다.
- 캐시 제어 개선:
Cache-Control,ETag같은 캐시 관련 헤더를 활용합니다.
한계
HTTP 1.1은 요청과 응답의 순서가 중요합니다. 파이프라이닝으로 여러 요청을 보내도 서버는 순서대로 응답해야 하므로, 앞선 응답이 지연되면 뒤 요청도 대기하는 Head-of-Line Blocking이 발생할 수 있습니다.
또한 매 요청마다 비슷한 헤더가 반복 전송되어 대역폭 낭비가 생길 수 있습니다.
HTTP 2와 비교
| 항목 | HTTP 1.1 | HTTP 2 |
|---|---|---|
| 메시지 형식 | 텍스트 | 바이너리 프레임 |
| 요청 처리 | 순차 응답 제약 | 멀티플렉싱 |
| 헤더 | 반복 전송 | HPACK 압축 |
| HOL Blocking | 애플리케이션 계층에서 발생 | 애플리케이션 계층에서는 완화 |
핵심 정리
HTTP 1.1은 지속 커넥션으로 연결 비용을 줄였지만, 순차 응답 구조와 반복 헤더 전송 한계가 있었습니다.