Network

[러닝 HTTP/2] 1. HTTP의 진화

noahkim_ 2025. 3. 28. 18:34

스티븐 루딘, 하비에르 가르사 님의 "러닝 HTTP/2" 책을 정리한 글입니다.

 

하이퍼텍스트 발전과정

연도 인물 개념/업적 주요 내용
1930 바네바 부시 메멕스 시스템
마이크로필름을 활용한 문서 참조 시스템 구상
관련 주제와 문맥적 상관관계 유지
1963 테드 넬슨 하이퍼텍스트 개념 고안
"종이에서 표현할 수 없는 복잡한 방식으로 상호 연결된 글·그림 자료"
1965 테드 넬슨 하이퍼텍스트 발표
정보가 상호 연결되며 지워지지 않고 누구나 쉽게 접근 가능한 문서 우주 구상
1970 테드 넬슨 하이퍼텍스트 시제품 구현
(제너두 프로젝트)
부시의 아이디어를 바탕으로 개발했으나 상용화 실패, 후대에 큰 영향
1989 팀 버너스 리 HTTP 개발 및 월드 와이드 웹 제안
CERN 연구소에서 가속기 실험 데이터를 관리하는 시스템 제안
- 하이퍼텍스트 개념 채택
  팀 버너스 리 하이퍼미디어 개념 포함
정보가 반드시 텍스트가 아니어도 됨 (이미지, 영상 등 포함)
  팀 버너스 리 서버-브라우저 개념 도입
전 세계적으로 연결된 정보 시스템(WWW) 구축

 

1. HTTP/0.9와 1.0

특징 HTTP/0.9 HTTP/1.0 (RFC 1945)
출시 연도 1991년 1996년
지원 메서드 GET GET, POST, HEAD
헤더 지원
응답 코드
리다이렉트
조건부 요청
캐싱 옵션 제한적 지원
연결 유지 기능
Host 헤더 선택적
데이터 형식 텍스트 다양한 콘텐츠 유형 지원
콘텐츠 인코딩
오류 처리

 

2. HTTP/1.1 

rfc 7230~7235

개선사항 설명 특징 / 항목 / 예시
Host 헤더 필수화
가상 호스팅 지원
 
새 연결 지시자 지속적 연결 지원  
Cacheability 헤더 확장 캐싱 제어 기능 (Cache-Control 헤더) - no-cache: 사용전에 반드시 서버에 유효성 검사하기
- must-revalidate: 리소스가 캐싱 상태일 경우, 서버에서 만료 여부 확인 후 사용
- max-age: 리소스가 N초 이하로 캐싱되었을 경우 사용
OPTIONS 메서드 추가
서버가 지원하는 HTTP 메서드 목록 조회 가능
 
Upgrade 헤더 프로토콜 업그레이드 가능 예: WebSocket
Range 요청 리소스의 특정 부분만 요청 가능
예: 대용량 파일 다운로드 최적화
Transfer-Encoding 압축 데이터를 청크 단위로 응답함 스트리밍 가능
파이프라이닝 여러 요청을 연속적으로 전송 성능 향상

 

3. HTTP/1.1 이후 

  • 웹은 HTTP/1.1 이후로 이전과 상상하지도 못할만큼 변해옴
  • 웹 페이지에 개체가 추가될 떄마다 페이지는 더 복잡해짐
  • ✅ 한 번에 한 개체만 요청하도록 설계된 이 프로토콜은 더 혹사당하고 있었음

 

4. SPDY 

  • 2009년, 마이크 벨시와 로베르토 페온은 HTTP의 대안으로 SPDY를 제시함
  • 효율적: 다중화, 프레이밍, 헤더 압축
  • 여러 브라우저와 서버, 프록시도 지원하기 시작함

 

5. HTTP/2 

년도 내용 특징
2012년 HTTP 워킹 그룹 재구성
차세대 HTTP 프로토콜 목표 설정
✅ 최종 사용자의 latency 개선
 HOL(Head-of-Line) 블로킹 개선
 TCP 혼잡제어 개선
 HTTP/1.1과의 호환성 유지 (중재자 명확화)
2015년
RFC 7540 발표
HTTP/2 공식 표준화
Google SPDY 기반