HTTP 프로토콜의 기본 특징 정리
HTTP의 기본 특징은 다음 네 가지로 정리할 수 있다.
- 클라이언트 서버 구조
- 무상태(Stateless) 프로토콜
- 비연결성(Connectionless)
- HTTP 메시지
1. 클라이언트 서버 구조
HTTP는 클라이언트와 서버를 명확히 분리하는 구조이다.
Client → Request → Server
Server → Response → Client
클라이언트는 요청(Request)을 보내고,
서버는 응답(Response)을 반환한다.
이 구조의 장점은 다음과 같다.
- 역할 분리가 가능하다.
- 클라이언트는 UI/사용자 경험에 집중
- 서버는 데이터 처리와 비즈니스 로직에 집중
- 각각 독립적으로 발전 가능
즉, 책임이 분리되었기 때문에 확장성과 유지보수성이 좋아진다.
2. 무상태(Stateless) 프로토콜
- Stateless란?
서버가 클라이언트의 상태를 기억하지 않는 것을 의미한다.
(1) Stateful (상태 유지)
고객: 노트북 얼마인가요?
점원: 100만 원입니다.
고객: 2개 구매하겠습니다.
점원: 200만 원입니다.
→ 점원은 이전 대화를 기억하고 있어야 한다.

(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)
한 번 연결을 맺으면
모든 응답을 받을 때까지 연결을 유지한다.

→ 불필요한 연결 비용 감소
→ 성능 향상
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의 핵심 특징은 다음과 같다.
- 클라이언트-서버 구조
- Stateless (확장성에 유리)
- 비연결성 (자원 효율성)
- 메시지 기반 통신
HTTP는 단순한 전송 프로토콜이 아니라
확장성과 대규모 트래픽 처리를 고려한 설계 철학을 가진 프로토콜이라는 점이 인상 깊었다.
'Computer Science' 카테고리의 다른 글
| [CS] HTTP/HTTPS 프로토콜의 차이점 (0) | 2026.02.12 |
|---|---|
| [CS] 3-Tier Achitecture (WEB-WAS-DB) (0) | 2026.02.10 |
| [CS] 가상머신 (Virtual Machine) vs 컨테이너 (Container) (0) | 2025.11.19 |