728x90
반응형
🔷 쿠키(Cookie)란?
- 정의: 사용자의 브라우저에 저장되는 작은 데이터
- 주 용도: 로그인 유지, 사용자 설정 저장
- 특징
- 클라이언트(브라우저)에 저장됨
- 서버가 Set-Cookie 헤더로 설정
- 매 요청마다 자동으로 서버에 함께 전송됨
- 보안에 취약할 수 있음 (노출 가능성)
Set-Cookie: sessionId=abc123; Path=/; HttpOnly
🔷 세션(Session)이란?
- 정의: 서버가 사용자 정보를 서버 메모리 또는 DB에 저장하고 식별하는 방식
- 주 용도: 인증 정보 저장 (로그인 상태)
- 특징
- 서버에서 관리됨
- 사용자는 식별자(sessionId)만 쿠키로 보유
- 상대적으로 안전하지만 서버에 부담이 있음
🔷 토큰(Token)이란?
- 정의: 인증 정보를 포함한 문자열(주로 JWT 형식)을 클라이언트가 보관
- 주 용도: API 인증 (특히 모바일, SPA 등)
- 특징
- 주로 JWT 형태로 인코딩된 정보 포함
- 클라이언트가 보관 (쿠키나 로컬스토리지)
- Stateless 구조 (서버가 상태 저장 안 함)
- 보안 주의: XSS, 탈취 방지 필요
Header.Payload.Signature (JWT 구조 예시)
🔷 쿠키 vs 세션 vs 토큰 비교
항목쿠키세션토큰
| 저장 위치 | 브라우저 | 서버 | 브라우저 |
| 서버 상태 | Stateless | Stateful | Stateless |
| 보안 | 낮음 | 높음 | 중간 (구현에 따라 다름) |
| 인증 방식 | X | O (세션 ID) | O (Access Token) |
| API 사용 | 제한적 | 부적합 | 매우 적합 |
🔷 실무 예시
- 쿠키: 자동 로그인, 장바구니, 테마 설정 등
- 세션: Spring MVC 로그인 처리 시 사용 (HttpSession)
- 토큰: Spring Security + JWT, OAuth 인증 등에서 사용
✅ 마무리
쿠키, 세션, 토큰은 각각의 목적과 장단점이 있으며,
웹 서비스의 규모, 보안 요건, 확장성에 따라 적절히 선택해야 합니다.
특히, SPA + 모바일 API 환경에서는 토큰 기반 인증(JWT)이 주로 사용됩니다.
728x90
반응형
'Computer Science > NetWork' 카테고리의 다른 글
| 🧠 HTTP 상태코드 완전 정리하기 (재밌게, 쉽게, 한 방에!) (3) | 2025.08.04 |
|---|---|
| 🧩 RESTful API 제대로 알기: 개념부터 예제까지 한방에 정리! (2) | 2025.08.04 |
| 📌GET vs POST vs PUT vs PATCH vs DELETE: HTTP 메서드 완벽 총정리! (0) | 2025.07.31 |
| ✅ HTTP vs HTTPS 차이와 보안의 원리 (2) | 2025.07.31 |
| Forward vs Redirect 차이점 총정리! 웹 개발자라면 반드시 알아야 할 핵심 개념 (0) | 2022.11.04 |