HTTP는 웹을 위한 프로토콜로 시작했지만, 지금은 사실상 서버 간 통신까지 포함한 표준 전송 규약이 됐다.
API를 만들고, 파일을 주고받고, 마이크로서비스끼리 호출하는 대부분의 순간에 HTTP가 등장한다.
1) HTTP란?
HTTP(HyperText Transfer Protocol) 는 이름 그대로 전송 규약(Transfer Protocol)이다.
초창기에는 하이퍼텍스트(HTML)를 주고받기 위해 등장했지만 지금은 요청(Request) / 응답(Response) 형태로 데이터를 주고받는
범용 규칙으로 자리 잡았다.
2) 모든 것이 HTTP인 이유
HTTP 메시지는 구조가 단순하면서도 확장성이 좋아서 사실상 모든 데이터를 실어 나를 수 있다.
HTTP 메시지로 전송 가능한 것들:
- HTML, Text
- Image, 음성, 영상, 파일(바이너리)
- JSON, XML 같은 API 데이터
그리고 중요한 포인트 하나:
- 브라우저 ↔ 서버뿐 아니라 서버 ↔ 서버 통신에서도 HTTP가 사실상 기본이 됨
(내부 API 호출, 외부 연동, 게이트웨이, 프록시, CDN… 전부 HTTP 중심)
3) HTTP 버전 역사
HTTP는 “웹이 커지면서 기능과 성능을 개선”해 온 역사라고 보면 이해가 쉽다.
- HTTP/0.9 (1991)
- GET만 지원
- 헤더가 없어서 기능이 매우 제한적
- HTTP/1.0 (1996)
- 메서드/헤더 개념이 추가되며 형태가 갖춰짐
- HTTP/1.1 (1997)
- 사실상 가장 오래, 가장 많이 쓰인 버전
- 지금도 실무에서 기본기로 가장 중요
- RFC 변화 흐름: RFC2068 → RFC2616 → RFC7230~7235 (2014)
- HTTP/2 (2015)
- 성능 개선 중심(더 빠르고 효율적인 전송)
- HTTP/3 (진행/확산)
- TCP 대신 UDP 기반(QUIC) 으로 성능 개선을 목표
정리: 기능적 성숙은 1.1, 성능 개선은 2/3의 방향성
4) HTTP의 기반 프로토콜
HTTP는 혼자 떠 있는 게 아니라 “아래 계층(전송 계층)” 위에서 동작한다.
- TCP 기반: HTTP/1.1, HTTP/2
- UDP 기반: HTTP/3
현재 실무에서는:
- HTTP/1.1이 여전히 매우 흔하고,
- HTTP/2, HTTP/3는 점점 비중이 늘어나는 중
5) HTTP의 핵심 특징
HTTP를 “웹 통신의 표준”으로 만든 핵심 특징
1) 클라이언트-서버 구조
- 클라이언트는 요청을 보내고, 서버는 응답을 준다.
- 역할이 명확해서 확장/분리가 쉽다.
2) 무상태(Stateless)
- 서버는 “이전 요청의 상태”를 기본적으로 기억하지 않는다.
- 장점: 서버 확장(스케일 아웃)에 유리
- 단점: 로그인 같은 상태는 쿠키/세션/토큰 같은 별도 장치로 해결해야 함
3) 비연결성(Connectionless)
- 요청/응답이 끝나면 연결을 유지하지 않는 방향으로 설계됨(기본 철학)
- 덕분에 많은 클라이언트를 효율적으로 처리 가능
- 대신 매번 연결하면 비용이 커서, 실제론 Keep-Alive 같은 최적화가 사용됨
4) HTTP 메시지
- 요청/응답이 “메시지” 형태로 명확히 정의되어 있고
- 헤더로 확장이 쉬워서(인증/캐시/압축/콘텐츠 타입 등) 인프라 친화적이다.
5) 단순함 + 확장 가능
- 규칙 자체는 단순하지만, 생태계(프록시, 캐시, CDN, 게이트웨이 등)로 확장하기 좋다.
- 그래서 지금의 웹/서비스 인프라가 HTTP 위에 쌓였다.
'HTTP·Network' 카테고리의 다른 글
| Stateful vs Stateless (0) | 2026.02.10 |
|---|---|
| HTTP: 클라이언트 - 서버 구조 (0) | 2026.02.10 |
| 웹 브라우저 요청 흐름 (0) | 2026.02.09 |
| URI란? URI/URL/URN 차이 정리 (0) | 2026.02.09 |
| DNS란? (0) | 2026.02.09 |