HTTP는 Stateless(무상태) 프로토콜로, 서버가 클라이언트의 상태를 유지하지 않아 클라이언트가 매 요청마다 서버에게 인증해줘야함.
어떻게 인증을 쉽게 할것인가?
서버가 클라이언트의 상태를 기억할수 있도록 Session을 도입.
서버가 사용자를 식별할 수 있도록 세션 저장소에 사용자의 상태를 저장.
클라이언트는 세션 ID를 쿠키로 저장하고, 요청 시마다 이를 서버에 전달.
서버는 세션 ID를 기반으로 클라이언트를 식별하고 인증 상태를 확인
이런 인증방식 덕분에 쿠키로 Stateful(상태성)하게 된다
1. 확장성 문제 (Scalability)
2. 보안 문제
3. 분산 시스템 및 클라우드 환경의 등장
Session-based 인증방식의 한계로 인하여 Token-based 인증방식 탄생
세션 상태를 서버가 아닌 클라이언트에 저장하는 방법.
1. JSON Web Token (JWT)과 같은 기술을 활용해, 인증 정보를 포함한 토큰(Token)을 클라이언트에 전달.
2. 서버는 클라이언트가 보낸 토큰만 검증하며, 세션 정보를 따로 저장하지 않음.
이런 인증방식 덕분에 쿠키로 Stateless(무상태성)하게 된다.