본문 바로가기

HTTP·Network

HTTP 기본 개념

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