쿠키 토큰 세션 그리고 JWT

Jangmyun·2024년 7월 22일
  • 정의: 웹 브라우저에 저장되는 작은 데이터 조각.
  • 사용 예시: 사용자의 로그인 정보를 기억해서 다시 로그인할 필요가 없게 하거나, + 장바구니에 담긴 상품 정보를 유지.
  • 특징:
    + 클라이언트 측에 저장됨.
    + 서버가 쿠키를 설정하고 클라이언트(브라우저)가 이를 저장.
    + 다음 요청 때 브라우저가 자동으로 서버에 전송.

세션 (Session)

  • 정의: 서버에 저장되는 사용자 상태 정보.
  • 사용 예시: 사용자가 로그인한 상태를 유지하고, 개인화된 사용자 경험 제공.
  • 특징:
    + 서버 측에 저장됨.
    + 서버가 사용자별로 고유한 세션 ID를 생성하고 이를 클라이언트에 전달.
    + 클라이언트는 이 세션 ID를 쿠키에 저장하고, 요청할 때마다 이를 서버에 전달.

토큰 (Token)

  • 정의: 인증 및 권한 부여에 사용되는 자격 증명 정보.
  • 사용 예시: API 호출 시 클라이언트가 서버에 자신을 인증하기 위해 사용.
  • 특징:
    + 클라이언트 측에 저장됨.
    + 서버가 발급한 토큰을 클라이언트가 저장하고, 요청할 때마다 이를 서버에 전송.
    + 토큰은 일반적으로 짧은 시간 동안만 유효.

JWT (JSON Web Token)

  • 정의: JSON 형식으로 데이터를 저장한 토큰, 주로 인증에 사용.
  • 사용 예시: 사용자가 로그인할 때 발급받은 토큰을 통해 API에 접근 권한을 검증.
  • 특징:
    + 클라이언트 측에 저장됨.
    + 자체적으로 데이터와 서명을 포함하고 있어, 서버에서 별도의 세션 저장이 필요 없음.
    + 헤더, 페이로드, 서명 세 부분으로 구성:
    + 헤더: 토큰의 타입과 알고리즘 정보.
    + 페이로드: 사용자 정보와 추가 데이터.
    + 서명: 토큰의 무결성을 검증하는 서명.

요약

  • 쿠키: 클라이언트 브라우저에 저장되는 데이터, 주로 사용자 상태 정보나 설정 유지.
  • 세션: 서버에 저장되는 사용자 상태 정보, 클라이언트는 세션 ID를 통해 접근.
  • 토큰: 인증 및 권한 부여를 위해 사용되는 자격 증명, 주로 API 호출 시 사용.
  • JWT: JSON 형식의 토큰, 자체적으로 정보와 서명을 포함하여 서버에 세션을 저장할 필요 없이 인증 가능.

0개의 댓글