1. HTTP는 기본적으로
무상태(stateless)
프로토콜
서버는 클라이언트의 이전 요청 정보를
기억하지 못함
.
즉, 로그인하더라도 다음 요청 시 "이 사용자가 로그인한 사람인지" 판단할 수 없음.
➡ 그래서
상태 유지(Session Management)
가 필요함.
2. 상태 유지를 위한 방법
방법
설명
쿠키(Cookie)
클라이언트(브라우저)에 저장하는 작은 데이터
세션(Session)
서버에 사용자 정보를 저장하고, 클라이언트에게 식별자만 전달
토큰(Token)
인증 정보를 암호화해서 클라이언트에 전달하고 매 요청 시 함께 보냄
3. 세션(Session)
기본 개념
서버 측 저장소
에 로그인한 사용자 정보를 저장
클라이언트는 요청마다
세션 ID(식별자)
를 쿠키에 담아 전송
흐름
클라이언트가 로그인 → 서버가 세션 생성 (
JSESSIONID
)
서버는 세션 ID를 응답의
Set-Cookie
로 전달
클라이언트는 다음 요청부터 이 쿠키를 함께 전송
서버는 세션 ID를 보고 사용자 정보를 확인
특징
상태 유지 가능
서버 자원(메모리) 사용