[TIL] Cookie, Session, Token

narinn-star·2023년 1월 15일
0

TIL

목록 보기
1/1

Cookie, Session, Token에 대해 알아보자!

쿠키, 세션, 토큰. 모두 들어본 적이 있는 친숙한 단어들이다.
그런데 이 세가지가 무엇을 하는지, 왜 필요한지에 대해서 알아야 쿠키값이든 토큰이든 뭐든 받아서 어떻게 처리해야 하는지 알 수 있을 것 같아 공부한 내용을 정리하려 한다.

쿠키는 브라우저에서 사용한다.
우리는 쿠키를 이용해서 서버가 브라우저에 데이터를 넣도록 할 수 있다. 브라우저를 방문할 때마다 쿠키를 요청과 함께 보내게 된다.
인증 뿐만아니라 여러 정보도 저장이 가능하다.

우리가 A라는 영어로 된 브라우저에 방문해서 쿠키를 허용하고 그 웹 브라우저에서 영어가 아닌 한국어로 보겠다고 저장해두면, 다음에 또 다시 이 A라는 브라우저에 방문했을 때 그 쿠키값을 가져와 다시 한국어로 설정할 필요 없이 바로 영어로 우리에게 보여주게 되는 것이다.

Session?

웹 브라우저에 로그인을 하면, 비밀번호 일치에 대한 확인 과정이 있을 것이다. 이 때 비밀번호가 일치하면 세션DB에 나의 아이디와 비밀번호 등으로 구성된 USER가 생성된다.

현재 이 웹 브라우저에 로그인하고 있는 모든 USER들의 정보들이 세션 DB에 저장되어 있게 된다.

이 때문에 웹 브라우저를 사용하는 유저들이 많을수록 많은 DB가 필요하기도 하다. 하지만 토큰으로는 할 수 없는 USER 제거가 가능하다. 현재 로그인하고 있는 유저들이 DB에 저장되어있기 때문에 그 DB에서 유저를 찾아 없애기만 하면 되는 것이다.

세션DB에서 서버로 ID값을 보내면 서버에서는 이 ID 값을 담은 '쿠키'를 브라우저로 전달하게 된다. A라는 웹 브라우저 내의 한 페이지에서 다른 페이지로 가면 세션ID가 쿠키를 넘기고, 또 넘기는 방식으로 쿠키값을 전달해 우리가 해당 웹 브라우저를 계속 사용할 수 있게 되는 것이다.

Token?

세션 DB가 필요 없다.
정보를 하나하나 찾을 필요가 없다는 뜻이다.
토큰은 아주 긴 텍스트로 구성되어 있는데, 우리는 세션DB에서 처럼 USER를 찾는게 아니라, 이 토큰이 '유효한가'에 대해서만 확인하면 된다.

Access Token

유효기간을 가진, 서버가 기억하는 토큰이다.
유효기간은 비교적 짧다.

Refresh Token

위의 Access Token의 짧은 수명을 보완해주는 친구다. Access Token의 유효기간이 다 되면 Access Token을 다시 발급해줄 Token이다.

로그인 -> 토큰 발급 -> 토큰 만료 -> 로그아웃 -> 로그인 -> Access Token 유효X -> Refresh Token으로 다시 Access Token 발급 ...

내가 이해한 바로는 이러한데.. 자신이 없다 😓


Nicolas 강의를 참고했는데, 아직 부족한 부분이 많다.
조금 더 공부할 필요가 있는 부분인 것 같다.

0개의 댓글