쿠키, 세션, 토큰,JWT

박정빈·2024년 11월 1일
  1. 쿠키, 세션, 토큰의 차이점

  2. JWT 토큰 인증 이란?

  3. Access Token & Refresh Token 원리

구분쿠키 (Cookie)세션 (Session)토큰 (Token)JWT (JSON Web Token)
주요 목적클라이언트 상태 저장, 자동 로그인, 사용자 설정인증 상태 저장 및 세션 관리클라이언트 인증, 상태 비유지(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로 일부 정보 조회 가능

0개의 댓글