http Protocol은 stateless 한 특징을 가지고 있다. 로그인을 한다면 누가 로그인 중인지 기억하기 위해 쿠키,세션,토큰 등을 사용한다.
웹에 접속할 때 생성되는 정보를 담고 있는 임시 파일이다. 서버를 대신해 사용자의 웹 브라우저에 정보를 저장한다.
쿠키와 반대로 웹 브라우저가 아닌 서버의 메모리에 세션 ID를 저장한다.
Json format으로 사용자에 대한 정보를 저장할 수 있는 웹토큰. 서버에서 클라이언트에게 인증이 되면 토큰을 부여한다.
Cookie & Session
사용자가 서버에 로그인을 요청한다.
서버에서 사용자를 확인한 후 사용자의 고유한 Id를 부여하여 세션 저장소에 저장한 후 이와 연결된 세션Id를 발급한다.
사용자는 서버에서 해당 세션Id를 받아 쿠키에 저장한 후, 인증이 필요한 요청마다 쿠키를 헤더에 실어 보낸다.
서버는 쿠키를 받아 세션 저장소에서 대조 후 대응되는 정보를 가져온다.
인증이 완료되면 서버는 사용자에 맞는 데이터를 보내준다.
장점
단점
JWT
사용자가 서버에 로그인을 요청한다.
서버측에서 사용자에게 유일한 토큰을 발급한다.
클라이언트는 서버측에서 전달받은 토큰을 쿠키나 스토리지에 저장해두고, 서버에 요청을 할 때마다 해당 토큰을 HTTP요청 헤더에 포함시켜 전달한다.
서버는 전달받은 토큰을 검증하고 요청에 응답한다. 토큰에는 요청한 사람의 정보가 담겨있어서 서버는 DB를 조회하지않고 누가 요청했는지 알 수 있다.
장점
단점