stateful session: 사용자 상태를 전부 서버에서 관리하고 특정 세션 쿠키를 사용해서
이 세션을 해당 클라이언트와 연결
→ 초기 구현 단계에서는 사용하기 쉽지만 규모가 커지면 복잡도 증가
예를 들어, 로그인 성공 시 웰컴 페이지를 렌더링해야 한다고 가정할 때
사용자가 로그인하면 서버에 세션 쿠키를 만들 수 있으나
다른 페이지로 이동하면 서버가 가지고 있는 세션 정보는 사라지고 사용자는 다시 로그인해야 함
→ 이런 경우 세션을 유지하기 위해 stateless session이 적합
stateless session은 세션 쿠키를 서버가 아닌 프론트엔드 쪽에 두고
새로운 요청을 보낼 때마다 사용자를 식별할 수 있는 정보를 함께 보내는 방식
즉, 로그인한 사용자가 백엔드에 요청을 보낼 때마다
인증 방식에 따라 인증에 필요한 정보를 HTTP 헤더 또는 쿠키로 보내는 것
서버는 이 인증 정보를 받아서 검증하고 사용자를 식별한 다음
권한에 따라 사용자가 요구한 서비스 또는 콘텐츠를 제공(JWT 기반 인증이 표준으로 사용됨)
인증에 참여하는 두 대상 간에 클레임을 안전하게 주고 받을 수 있는 방법으로,
base64 방식으로 인코딩된 세 개의 JSON 데이터를 하나로 연결한 것
JWT는 점(.)으로 연결된 세 부분의 데이터로 나눌 수 있는데
첫 번째 부분은 JWT 헤더, 두 번째 부분은 페이로드, 세 번째 부분은 JWT 토큰의 사인(즉 시그니처)