본문 바로가기

Spring boot

쿠키,세션,토큰,JWT

반응형

1. 쿠키(Cookie)

  • 개념: 쿠키는 웹 서버가 사용자의 웹 브라우저에 저장하는 작은 데이터 파일입니다.
  • 용도: 주로 사용자 식별, 세션 관리, 사용자 설정 유지 등에 사용됩니다.
  • 특징:
    • 클라이언트 측(브라우저)에 저장됨.
    • 만료 기간을 설정할 수 있음.
    • HTTP 요청 시 자동으로 서버에 전송됨.
  • 저장 위치: 사용자의 웹 브라우저.

2. 세션(Session)

  • 개념: 세션은 서버 측에서 사용자와의 상호작용을 지속적으로 유지하기 위한 데이터 저장소입니다.
  • 용도: 사용자 로그인 상태 유지, 사용자별 데이터 관리 등에 사용됩니다.
  • 특징:
    • 서버 측에 저장됨.
    • 세션 ID는 클라이언트의 쿠키에 저장됨.
    • 서버 메모리나 데이터베이스에 저장될 수 있음.
  • 저장 위치: 서버의 메모리 또는 데이터베이스.

3. 토큰(Token)

  • 개념: 토큰은 인증 및 권한 부여를 위해 서버에서 생성한 문자열입니다.
  • 용도: 사용자의 신원 확인, API 접근 제어 등에 사용됩니다.
  • 특징:
    • 주로 클라이언트 측에 저장됨.
    • 서버에 저장되지 않음 (서버는 토큰을 검증할 수 있는 방법을 알고 있어야 함).
    • 다양한 포맷으로 존재 (예: JWT).
  • 저장 위치: 클라이언트의 로컬 스토리지나 세션 스토리지.

4. JWT(Json Web Token)

  • 개념: JWT는 JSON 객체를 사용하여 양 당사자 간에 정보를 안전하게 전송하기 위한 토큰입니다.
  • 구조: Header, Payload, Signature의 세 부분으로 구성됨.
  • 용도: 주로 인증과 권한 부여에 사용됨.
  • 특징:
    • 자체적으로 정보를 포함하고 있음 (무상태).
    • 클라이언트 측에 저장됨.
    • Base64 URL-safe 인코딩 사용.
  • 저장 위치: 클라이언트의 로컬 스토리지나 세션 스토리지.
반응형