세션
서버에 저장되며 고유한 SessionID 생성 후 클라이언트에 SessionID 담긴 쿠키 전송, 이후 클라이언트는 SessionID 쿠키를 요청시마다 전송하여 서버는 이를 통해 어떤 클라이언트의 요청인지 구분할 수 있음
어느정도 보안 유지 : 최초 접속 때를 제외하고 SessionID만 사용
큰 허용 용량 : 저장 개수나 용량 제한 없음(서버 용량 충분 시)
서버에 저장되므로 클라이언트의 웹브라우저에 의존하지 않아도 됨
데이터를 Hash Table에 저장. 한 번에 많은 정보를 하나의 세션 객체에 저장 가능
SessionID만 보내므로, 세션의 크기가 커도 네트워크 부하가 거의 없음
서버에 부하 : 서버에 데이터를 저장하므로 세션 양이 많아질수록 서버에 부하가 커짐
토큰
토큰 기반 인증이란 사용자가 자신의 아이덴티티를 확인하고 고유한 액세스 토큰을 받을 수 있는 프로토콜을 말한다.
사용자는 토큰 유효 기간 동안 동일한 웹페이지나 앱, 혹은 그 밖에 해당 토큰으로 보호를 받는 리소스로 돌아갈 때마다 자격 증명을 다시 입력할 필요 없이 토큰이 발급된 웹사이트나 앱에 액세스할 수 있다.
토큰이 유효하다면 사용자는 계속해서 액세스할 수 있다. 사용자가 로그아웃하거나 앱을 종료하면 토큰도 무효화된다.
JWT는 별도 저장소가 필요치 않아 서버자원을 절약할 수 있고 인증 과정에서 다른 곳을 거칠 필요없어 효율적이다.
인증 정보를 가진 특정 서버에만 트래픽이 몰릴 일도 없다. 서버 부하를 줄이기 좋은 방식이다.
서버 유지·보수, 확장이 편리할 수 있다.
외부 공격자가 접근하기 쉬운 위치, 노출 가능한 정보
노출 가능성으로 인해 저장할 수 있는 정보가 제한적이다.
암호화가 풀릴 가능성을 배제할 수 없다.
글 재미있게 봤습니다.