| 주요 목적 | 클라이언트 상태 저장, 자동 로그인, 사용자 설정 | 인증 상태 저장 및 세션 관리 | 클라이언트 인증, 상태 비유지(stateless) 인증 | 클라이언트 인증, 서명 기반의 stateless 인증 |
| 저장 위치 | 클라이언트 측 (브라우저의 쿠키 저장소) | 서버 측 (메모리 또는 데이터베이스) | 클라이언트 측 (localStorage, sessionStorage 또는 쿠키) | 클라이언트 측 (localStorage, sessionStorage 또는 쿠키) |
| 상태 관리 | Stateful (서버가 클라이언트 정보 식별 가능) | Stateful (서버가 클라이언트 정보 식별 가능) | Stateless (요청마다 인증, 서버에 상태 저장 X) | Stateless (요청마다 인증, 서버에 상태 저장 X) |
| 유효 기간 | 만료 시간 지정 가능, 브라우저 종료 시 삭제 가능 | 브라우저 종료 또는 세션 만료 시 소멸 | 만료 시간 지정 가능, 짧은 유효 기간을 주로 설정 | 만료 시간 지정 가능, 짧은 유효 기간을 주로 설정 |
| 보안 | HttpOnly, Secure 옵션 설정 가능 | 서버에 저장, 상대적으로 보안 높음 | 탈취 시 재사용 가능성, 적절한 저장 위치와 설정 필요 | 서명(Signature) 포함, 탈취 시 재사용 위험 존재 |
| 데이터 구조 | 키-값 쌍의 단순 문자열 형태 | 서버 저장소에 상태 정보 및 인증 정보 저장 | 데이터 구조 제한 없음 | Header, Payload, Signature의 3 부분 |
| 암호화 가능성 | 직접적으로는 암호화되지 않음, 암호화된 내용 포함 가능 | 암호화 필요 없음, 서버에만 정보 저장됨 | 암호화하여 저장 가능 | 기본적으로 인코딩된 상태, 암호화는 아님 |
| 인증 방식 | 세션 ID를 쿠키에 저장하여 서버로 전달 | 세션 ID로 서버에서 클라이언트 식별 | 클라이언트가 매 요청마다 토큰 전달 | 클라이언트가 매 요청마다 JWT 전달 |
| 사용 예시 | 자동 로그인, 사용자 설정 유지, 방문 기록 | 웹 애플리케이션 로그인 세션 유지 | 모바일 API 인증, 서버 상태 유지가 필요 없는 환경 | RESTful API 인증, 분산 시스템 인증 관리 |
| 확장성 | 세션보다는 확장성 있음 | 서버 상태 저장으로 인해 확장성 한계 | 확장성 높음 | 확장성 높음 |
| 정보 조회 | 상태 유지로 서버에서 상태 기반 정보 조회 가능 | 상태 유지로 서버에서 상태 기반 정보 조회 가능 | 요청마다 별도 조회 필요 | 요청마다 별도 조회 필요, Payload로 일부 정보 조회 가능 |