본문 바로가기
Computer Science

[CS] HTTP 프로토콜 - 무상태, 비연결, HTTP 메세지

by Tenma2 2026. 2. 11.

 

HTTP 프로토콜의 기본 특징 정리

HTTP의 기본 특징은 다음 네 가지로 정리할 수 있다.

  • 클라이언트 서버 구조
  • 무상태(Stateless) 프로토콜
  • 비연결성(Connectionless)
  • HTTP 메시지 

1.  클라이언트 서버 구조

HTTP는 클라이언트와 서버를 명확히 분리하는 구조이다.

Client → Request → Server  
Server → Response → Client

 

클라이언트는 요청(Request)을 보내고,
서버는 응답(Response)을 반환한다.

 

이 구조의 장점은 다음과 같다.

  • 역할 분리가 가능하다.
  • 클라이언트는 UI/사용자 경험에 집중
  • 서버는 데이터 처리와 비즈니스 로직에 집중
  • 각각 독립적으로 발전 가능

즉, 책임이 분리되었기 때문에 확장성과 유지보수성이 좋아진다.

 

 


2. 무상태(Stateless) 프로토콜

- Stateless란?

서버가 클라이언트의 상태를 기억하지 않는 것을 의미한다.

(1) Stateful (상태 유지)

고객: 노트북 얼마인가요?
점원: 100만 원입니다.
고객: 2개 구매하겠습니다.
점원: 200만 원입니다.

→ 점원은 이전 대화를 기억하고 있어야 한다.

출처 : https://www.inflearn.com/course/http-웹-네트워크 강의자료 출처


(2) Stateless (무상태)

고객: 노트북 2개 얼마인가요?
점원: 200만 원입니다.
고객: 노트북 2개를 카드로 구매하겠습니다.

→ 요청 하나하나에 모든 정보가 담겨 있다.
→ 점원이 이전 대화를 기억할 필요가 없다.


- Stateless의 장점

  • 서버 확장이 쉽다.
  • 서버가 중간에 바뀌어도 문제없다.
  • 장애 발생 시 다른 서버로 요청 전달 가능
  • 대규모 트래픽 처리에 유리

예:

  • 갑자기 사용자가 10배 증가
  • 서버를 여러 대 추가해도 문제없음

- Stateless의 한계

로그인과 같이 상태를 유지해야 하는 경우가 존재한다.

예:

  • 로그인 상태
  • 장바구니
  • 사용자 세션

이를 해결하기 위해:

  • 쿠키
  • 세션
  • JWT

등을 사용한다.

가능한 한 상태 유지는 최소화하는 것이 좋다.

 

 


 

3. 비연결성 (Connectionless)

HTTP는 기본적으로 요청-응답 후 연결을 끊는다.

요청 → 응답 → 연결 종료

- 장점

  • 서버 자원 낭비 최소화
  • 동시 접속자 수가 많아도 효율적
  • 대부분의 웹 요청은 짧게 끝남

예:
1시간 동안 1,000명이 방문해도
실제로 동시에 요청하는 사용자는 매우 적다.


- 단점

HTTP는 TCP 기반이기 때문에
연결할 때마다 3-way Handshake가 발생한다.

문제점:

  • 매번 연결 수립 비용 발생
  • HTML, CSS, JS, 이미지 등 각각 요청해야 함

✔ 해결책: HTTP 지속 연결 (Persistent Connection)

한 번 연결을 맺으면
모든 응답을 받을 때까지 연결을 유지한다.

Persistent Connection

→ 불필요한 연결 비용 감소
→ 성능 향상

 

HTTP/1.1부터 기본 적용
HTTP/2에서는 더 개선됨 (멀티플렉싱)

 

 


4. HTTP 메시지 구조

HTTP 메시지는 크게 3 부분으로 구성된다.

Start-Line
Header
Body

 


- 요청 메시지 구조

GET /members?id=1 HTTP/1.1
Host: example.com

 

구성:

  • Method (GET, POST 등)
  • Request Target (경로)
  • HTTP Version

형식:

method SP request-target SP HTTP-version CRLF

- 응답 메시지 구조

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

 

형식:

HTTP-version SP status-code SP reason-phrase CRLF

 


(1) HTTP 메서드

  • GET: 데이터를 가져올 때
    • 예: 웹 페이지 불러오기
  • POST: 데이터를 서버로 보낼 때
    • 예: 로그인 정보 전송
  • PUT: 데이터를 새로 저장하거나 업데이트할 때
    • 예: 프로필 정보 수정
  • DELETE: 데이터를 삭제할 때
    • 예: 게시글 삭제

(2) HTTP 상태 코드 (Status Code)

  • 200번대: 성공
    • 예: 200 OK: 요청 성공
    • 201 Created: 자원 생성 성공
    • 204 No Content: 성공했지만 응답 본문 없음
  • 300번대: 리다이렉션
    • 301 Moved Permanently: URL이 바뀌었어요
    • 302 Found: 임시로 다른 URL로 이동합니다
  • 400번대: 클라이언트 오류
    • 400 Bad Request: 요청 문법이 틀렸어요
    • 401 Unauthorized: 인증 필요
    • 403 Forbidden: 접근 권한이 없어요
    • 404 Not Found: 요청한 URL이 없어요
  • 500번대: 서버 오류
    • 500 Internal Server Error: 서버에 문제가 있어요

(3) HTTP 바디

실제 전송 데이터:

  • HTML
  • JSON
  • 이미지
  • 영상
  • 파일

byte로 표현 가능한 모든 데이터가 포함 가능하다.


📌 정리

HTTP의 핵심 특징은 다음과 같다.

  1. 클라이언트-서버 구조
  2. Stateless (확장성에 유리)
  3. 비연결성 (자원 효율성)
  4. 메시지 기반 통신

HTTP는 단순한 전송 프로토콜이 아니라
확장성과 대규모 트래픽 처리를 고려한 설계 철학을 가진 프로토콜이라는 점이 인상 깊었다.