Post

HTTP는 왜 상태를 기억하지 못할까 — HTTP부터 JWT까지 (1)

HTTP는 왜 상태를 기억하지 못할까? Stateless의 개념부터 세션, 쿠키, 토큰까지의 흐름을 예시와 함께 이해하는 웹 인증 기초 시리즈입니다.

HTTP는 왜 상태를 기억하지 못할까 — HTTP부터 JWT까지 (1)

1. HTTP란?

HTTP (HyperText Transfer Protocol) 는 웹의 모든 통신이 이루어지는 기본 프로토콜입니다.

우리가 브라우저에서 링크를 클릭하거나 서버에 데이터를 요청할 때,
이 모든 과정은 HTTP를 통해 진행됩니다.


2. HTTP의 가장 큰 특징 — Stateless (무상태)

HTTP는 Stateless, 즉 무상태 프로토콜입니다.
서버는 이전 요청의 상태를 기억하지 않습니다.

예시

  1. 유저가 로그인 요청 → 서버는 로그인 처리
  2. 유저가 /mypage 요청 → 서버는 “누구세요?

→ 로그인한 사실을 기억하지 못함

이유는?

  • HTTP는 기본적으로 “요청 → 응답” 후 연결을 끊고 상태를 잊어버리는 구조입니다.

3. Stateless로 인한 문제점

그러면 이런 문제들이 발생하겠죠:

  • 로그인 상태 유지 불가능
  • 장바구니 상태 유지 불가능
  • 최근 본 항목 저장 불가

→ 서버는 매번 “당신이 누군지” 모른 채 요청을 처리함


4. 상태 유지를 위한 해결책

HTTP의 한계를 극복하기 위해 등장한 방식들:

방식설명
세션 (Session)서버가 사용자 정보를 메모리에 저장 → 세션 ID를 클라이언트에 전달
쿠키 (Cookie)클라이언트가 세션 ID나 토큰을 저장하고, 매 요청마다 자동 전송
토큰 (Token)클라이언트가 토큰을 요청 헤더에 담아 서버에 전달 → 서버는 토큰만으로 사용자 식별

이러한 방식들은 모두 HTTP의 Stateless 특성을 보완하기 위한 인증/식별 수단입니다.


5. 요약 정리

항목설명
HTTP는 Stateless요청-응답 후 상태를 기억하지 않음
문제점로그인 유지, 장바구니, 권한 관리 불가
해결책세션, 쿠키, 토큰 등의 인증 방식 필요

💡 핵심 개념: HTTP는 “기억하지 않는다”는 전제에서 시작해야 합니다.


🔜 다음 글 예고

다음 글에서는 다음 주제를 다룰 예정입니다:

  • 인증(Authentication)인가(Authorization) 는 왜 분리되어야 하는가?
  • 어떤 문제가 이를 분리하게 만들었는가?

HTTP 기반 인증이 어떻게 진화해왔는지를 이어서 정리해볼게요!

This post is licensed under CC BY 4.0 by the author.