<aside> 💡 Authentication은 인증(서버의 유저인지), Authorization은 권한부여(특정한 행동 허용)
</aside>
쿠키 : HTTP 프로토콜의 무상태성(Stateless)을 보완해주는 도구. 쿠키 자체는 인증수단이 아니다.
세션 : 서버가(세션 DB) 인증정보를 가진다. 클라이언트는 서버가 쿠키에 담아 보내주는 세션 ID만 가진다.
토큰 : 클라이언트가 인증정보를 가진다. 서버는 토큰이 유효한지만 확인한다.
Authentication과 Authorization 차이점
유저이름과 비밀번호를 서버에 보낸다
정보가 맞다면 서버는 세션 DB에 Smith라는 유저를 생성한다
해당 세션에는 별도의 ID를 가지고 있다
이 세션 ID는 쿠키를 통해 브라우저로 돌아오고 저장된다
그 후 같은 웹사이트의 다른 페이지로 이동하면 브라우저는 세션 ID가 담겨 있는 쿠키를 서버에 보낸다.
브라우저가 서버에 요청할 때 쿠키도 자동으로 보내진다
서버는 세션 ID가 담겨있는 쿠키를 확인하고
이때까지 서버는 요청을 보낸자가 누구인지 모른다
이 세션 ID로 세션 DB를 확인한고 해당 ID는 유저명 Smith의 것이란걸 알게된다.
이 요청이 끝나고 다른 페이지로 이동할 때마다 위 프로세스를 반복된다