웹을 이루는 수많은 기술 중에서 진짜 뼈대라 할 수 있는 것이 바로 HTTP이다. 브라우저에서 URL을 입력하면 그 뒤에서 움직이는 가장 핵심적인 프로토콜이 이 HTTP이다. HTTP가 어떻게 발전해 왔는지, 왜 계속 진화해야 했는지를 살펴보자.
1. HTTP 0.9: 한 줄로 시작된 혁명
1991년 팀 버너스 리가 만든 HTTP 0.9는 믿기 어려울 만큼 단순했다.
- 클라이언트는 단 한 줄짜리 요청(GET /index.html)을 보냄
- 서버는 HTML 문서만 반환
- 헤더도 없고, 연결도 요청마다 끊김
지금 관점에선 너무 부족해 보이지만, 이 단순함 덕분에 웹이 빠르게 확산될 수 있었다. 흥미로운 건 아직도 telnet 명령으로 HTTP 0.9 방식 요청을 실험해볼 수 있다.
2. HTTP 1.0: 웹 대중화의 기반
1990년대 초, 모자익(Mosaic) 브라우저의 등장과 함께 HTTP는 대중에게 본격적으로 노출되기 시작했다. 이 시점에 등장한 HTTP 1.0은 다음과 같은 변화가 있었다.
- 요청/응답에 헤더가 추가됨 (User-Agent, Content-Type 등)
- 다양한 MIME 타입 지원
- 여전히 요청마다 연결을 끊는 구조
RFC 1945로 정리되긴 했지만, 이건 공식 표준이라기보단 ‘정보 제공용 문서(Informational)’였다. HTTP 1.0의 가장 큰 한계는 매번 새로운 TCP 연결을 생성해야 한다는 점이다. 느린 시작(slow start)과 3-way 핸드셰이크 비용을 생각하면, 성능 측면에서 효율적이지 않았다.
3. HTTP 1.1: 커넥션 재사용으로의 전환
1997년 등장한 HTTP 1.1은 웹 성능을 획기적으로 끌어올린 버전이다. 핵심은 ‘Keep-Alive’를 기본으로 채택했다는 점이다.
주요 기능:
- Persistent Connections (기본적으로 연결 유지)
- Chunked Transfer-Encoding (스트리밍 전송 지원)
- Pipelining (연속 요청)
- 캐시 제어 및 콘텐츠 협상
여기서부터 웹은 단순한 텍스트 문서를 넘어서 하이퍼미디어 전송 플랫폼으로 진화하기 시작했다. 이미지, 동영상, 다양한 언어와 문자셋, 쿠키 기반 상태 관리 등도 이때 본격적으로 쓰이기 시작했다.
4. HTTP/2: 성능 재도약
웹의 무게가 점점 더 커지자, HTTP/1.1으로는 버티기 힘든 시대가 왔다. 그래서 2012년, HTTPbis 워킹 그룹이 HTTP/2 개발을 시작했다.
HTTP/2의 목표:
- 낮은 레이턴시
- 높은 처리량
- 기존 애플리케이션 수정 없이도 적용 가능
핵심은 단일 TCP 연결에서 멀티플렉싱을 지원한다는 것이다. 즉, 하나의 연결 안에서 동시에 여러 리소스를 주고받을 수 있으니 브라우저가 더 빠르고 효율적으로 동작할 수 있게 된다.
기존의 요청-응답 구조는 그대로 유지하면서 내부 전송 방식만 개선한 것이 특징이다. 덕분에 기존 서버나 클라이언트는 큰 수정 없이 HTTP/2의 이점을 누릴 수 있다.
정리하며: 왜 이걸 알아야 할까?
소프트웨어 아키텍처나 멀티미디어 서비스 설계를 고민할 때, 전송 계층의 성능은 전체 사용자 경험에 지대한 영향을 끼쳐. 특히 아래와 같은 상황에서 HTTP의 동작 원리를 이해하는 게 중요하다.
- CDN 및 캐시 정책 설계
- 스트리밍 서비스 아키텍처 구축
- 모바일/저지연 환경에서의 콘텐츠 전송 최적화
- SPA나 모바일 앱의 백엔드 API 호출 구조 설계
HTTP의 역사는 단순한 기술 진화가 아니라, 사용자 경험을 최적화하고자 하는 노력의 결정체이다. 브라우저 네트워킹을 이해하는 건, 결국 우리가 만드는 서비스의 퍼포먼스를 좌우하는 핵심이 된다고 볼 수 있다.
참고문헌
[1] 일리아 그리고릭, "구글 엔지니어에게 듣는 네트워킹과 웹 성능 최적화 기법", 정해권, 오현주 공역, 인사이트(insight)
'Multimedia Networking' 카테고리의 다른 글
HTTP를 넘어서 HTTP 2, HTTP 3 (0) | 2025.05.14 |
---|---|
5G와 모바일 네트워크의 진화 (0) | 2025.04.30 |
High Performance Browser Networking: Ch 08 모바일네트워크최적화 (0) | 2025.04.23 |
High Performance Browser Networking: Ch 07 모바일 네트워크 (0) | 2025.04.16 |
High Performance Browser Networking: Ch 06 와이파이(WiFi) (0) | 2025.04.09 |