서비스를 이용하려는 유저가 등록된 회원인지 확인하는 절차
인증을 받은 유저가 특정 리소스에 접근할 수 있는 권한이 있는지 확인하는 절차
브라우저에 저장되는 작은 데이터 조각이며 key-value 형태로 저장된다
사용자와 서버 간의 연결이 활성화된 상태를 의미한다
확장성 문제
세션 정보는 서버의 메모리나 저장소에 저장되기 때문에, 서버가 많아질수록 세션 동기화 문제가 발생한다
메모리 사용량 증가
많은 사용자가 접속할 경우, 각 사용자의 세션 정보를 서버 메모리에 저장하는 방식은 메모리 사용량이 급증하게 된다
상태 유지의 복잡성
세션은 서버에 상태를 저장하므로 서버가 무상태로 유지되기 어렵다. RESTful 아키텍처의 원칙과 맞지 않는다
보안 문제
세션 ID가 탈취될 경우 이를 통해 사용자의 세션을 가로채는 세션 하이재킹 공격이 발생할 수 있다
클라이언트에서 보관하는 암호화 또는 인코딩된 인증 정보를 의미한다
토큰 기반 인증 방식에서 사용되는 토큰으로 3가지 개념이 있다
- 헤더 Header
어떤 종류의 토큰인지와 어떤 알고리즘으로 서명되었는지에 대한 정보가 들어간다- 본문 Payload
실제로 중요한 데이터가 들어가는 부분이다
ex). 사용자 ID, 토큰의 만료 시간 등- 서명 Signature
토큰이 위조되지 않았는지 확인하는 역할을 한다
서버만이 알 수 있는 비밀키로 서명되어 있다