[HTTP 웹 기본 지식] 2. HTTP 기본

건우·2025년 12월 6일

CS / 네트워크

목록 보기
2/6
post-thumbnail

1. 모든 것이 HTTP

요즘 웹에서 오가는 거의 모든 데이터는
결국 HTTP 메시지로 전송된다.

  • HTML
  • 이미지
  • 영상
  • 파일 다운로드
  • JSON, XML (API 통신)
  • 서버 ↔ 서버 통신

결론은 하나다.
: “HTTP 위에서 다 돌아간다.”

HTTP 역사 (간단 정리)

  • HTTP/0.9 → GET만 있음
  • HTTP/1.0 → 헤더 등장
  • HTTP/1.1 → 우리가 가장 중요하게 봐야 할 버전
  • HTTP/2 → 성능 개선 (멀티플렉싱)
  • HTTP/3 → TCP 대신 UDP 기반 (더 빠름)

현재도 실무에서 기본은 HTTP/1.1 기반 이해다.
그 위에서 2, 3이 성능 개선을 더한 구조라고 보면 된다.

기반 프로토콜

  • HTTP/1.1 → TCP
  • HTTP/2 → TCP
  • HTTP/3 → UDP

즉, HTTP는 전송 계층 위에서 동작하는 애플리케이션 프로토콜이다.


2. 클라이언트 서버 구조

HTTP는 기본적으로

요청(Request) → 응답(Response)

클라이언트가 먼저 말 걸고
서버가 답한다.

서버는 “기다리는 입장”이고
클라이언트가 주도권을 가진다.


3. Stateful vs Stateless

이 부분이 HTTP에서 제일 중요하다고 느꼈다.

Stateless (무상태)

서버가 이전 요청을 기억하지 않는다.
각 요청은 완전히 독립적이다.

장점

  • 서버 확장성 ↑
  • 아무 서버나 요청 처리 가능

단점

  • 요청마다 필요한 정보를 다 담아야 한다

Stateful (상태 유지)

서버가 클라이언트 상태를 기억한다.
Ex. 로그인 상태 유지

단점

  • 항상 같은 서버가 처리해야 한다.
  • 중간에 서버 죽으면 상태 날아간다.

실무에서는?

완전한 Stateless는 어렵다.

Ex.

  • 로그인 상태
  • 장바구니

그래서

  • 쿠키
  • 세션
  • 토큰(JWT)

같은 방식으로 “최소한만 상태 유지”한다.

핵심은 가능한 Stateless로 설계하라.

트래픽이 폭증할 때 살아남으려면 무조건 Stateless가 유리하다.


4. 비연결성 (Connectionless)

HTTP는 기본적으로
요청 → 응답 → 연결 종료

연결을 계속 유지하지 않는다.

장점

  • 서버 자원 절약
  • 대규모 트래픽 대응 가능

1시간에 수천 명이 접속해도
실제로 동시에 요청하는 건 훨씬 적다.

한계

  • 매번 TCP 연결 (3-way handshake)
  • HTML + CSS + JS + 이미지 등 여러 요청 발생

그래서 등장한 게
HTTP 지속 연결(Persistent Connection)이다.

연결 유지 → 여러 요청 처리 → 종료

그리고 HTTP/2, HTTP/3에서 더 최적화되었다.


5. HTTP 메시지 구조

HTTP 메시지는 생각보다 단순하다.

start-line
header
(empty line)
message body

요청 메시지

GET /search?q=hello HTTP/1.1
Host: www.google.com

구성:

METHOD SP PATH SP VERSION

Ex.

  • GET → 조회
  • POST → 처리

응답 메시지

HTTP/1.1 200 OK
Content-Type: text/html

구성:

VERSION SP STATUS_CODE SP REASON

상태코드 Ex.

  • 200 → 성공
  • 400 → 클라이언트 오류
  • 500 → 서버 오류

헤더

헤더에는 부가 정보가 들어간다.

Ex.

  • Content-Type
  • Content-Length
  • Authorization
  • Cache-Control

사실 HTTP 헤더가 거의 모든 걸 담당한다고 봐도 된다.

바디

실제 데이터가 들어가는 곳.

  • HTML
  • JSON
  • 이미지
  • 파일

바이트로 표현 가능한 모든 데이터 가능.


6. HTTP의 진짜 강점

HTTP는

  • 단순하다.
  • 확장 가능하다.
  • 텍스트 기반이다.
  • 어디서든 사용할 수 있다.

그래서
“HTTP는 웹 프로토콜”이 아니라
“사실상 인터넷 기본 프로토콜”이 되어버렸다.


7. 정리

  • HTTP는 모든 데이터 전송의 중심이다.
  • 클라이언트-서버 구조다.
  • Stateless가 핵심이다.
  • 비연결성 기반이다.
  • 메시지 구조는 단순하다.
  • 단순하지만 확장 가능해서 오래 살아남았다.

출처
모든 개발자를 위한 HTTP 웹 기본 지식 (김영한, 인프런, 2020)

0개의 댓글