세션 기반 인증
세션은 비밀번호 등 클라이언트의 인증 정보를 쿠키
가 아닌 서버 측에 저장하고 관리한다.
서버는 클라이언트의 로그인 요청에 대한 응답을 작성할 때, 인증 정보는 서버에 저장하고, 클라이언트 식별자인 JSESSIONID
를 쿠키에 담는다. 이후 클라이언트는 요청을 보낼 때마다 JSESSIONID
쿠키를 함께 보낸다. 그리하면 서버는 JSESSIONID
의 유효성을 판별해 클라이언트를 식별한다.
세션 기반 인증의 장점
- 서버가 클라이언트의 웹 브라우저에 의존하지 않아도 된다.
- 쿠키를 포함한 요청이 외부에 노출되어도 세션 ID 자체는 유의미한 개인 정보를 담지 않는다.
- 각 사용자마다 고유한 세션 ID가 발급되기 때문에, 요청이 들어올 때마다 회원 정보를 확인(로그인)할 필요 없다.
세션 기반 인증의 단점
- 해커가 세션 ID를 중간에 탈취하여 클라이언트인 척 위장할 수 있다.
- 서버에서 세션 저장소를 사용하기 때문에, 요청이 많아지면 서버에 부하가 생긴다.