쿠키 (Cookie)
- 클라이언트(브라우저)에 저장되는 작은 데이터 조각
- 서버가 사용자를 식별하기 위해 브라우저에 값을 저장하고, 이후 모든 요청마다 자동으로 서버에 전송됨
- 주로 "이름=값" 형태로 저장되며, 만료일, 도메인, 경로, Secure, HttpOnly, SameSite 등 다양한 속성 설정 가능
- 사용 예: 자동 로그인, 장바구니 정보, 세션 ID 저장 등
- 보안상 민감한 정보 저장은 위험 (클라이언트에서 조작 가능, 탈취 위험 있음)3
세션 (Session)
- 서버 측에 사용자 정보를 저장하는 방식
- 사용자가 로그인하면 서버가 세션 ID(무작위 값)를 생성해 클라이언트(주로 쿠키)에 저장, 서버는 이 ID로 사용자 상태를 추적
- 실제 데이터(로그인 정보 등)는 서버에 저장되고, 클라이언트는 세션 ID만 보유
- 브라우저를 닫거나 세션이 만료되면 정보가 사라짐
- 보안성이 쿠키보다 높음(민감 정보가 서버에만 저장됨)23
JWT (JSON Web Token)
- 인증 정보를 JSON 형태로 인코딩한 토큰
- 세 부분(Header, Payload, Signature)으로 구성, BASE64로 인코딩됨
- 서버가 토큰을 발급하면 클라이언트가 저장(주로 로컬스토리지/세션스토리지/쿠키)하고, 이후 요청 시 HTTP 헤더(Authorization)에 실어 전송
- 서버는 토큰 자체의 서명만 검증하고 별도 저장소에 상태를 저장하지 않음(Stateless)
- 토큰 자체에 인증/권한 정보가 포함됨(서버 부하 감소, 확장성↑)