쿠키 vs 세션 vs 토큰

해연·2023년 7월 31일
0

네트워크

목록 보기
7/16

Q. 왜 쿠키 / 세션 / 토큰이 필요한가..?

HTTP는 무상태성(stateless)이다. 서버로 가는 모든 요청이 이전 작업과 독립적으로 다뤄지기 때문에 요청할 때마다 우리가 누구인지 알려줘야 한다.

쿠키

쿠키를 이용해서 서버는 브라우저에 데이터를 넣을 수 있는 시스템
즉, 서버와 클라이언트 사이의 매개체

작동방식

  • 웹사이트에 방문할 때 서버에 요청을 보낸다.
  • 서버는 응답을 하는데 이 응답에는 브라우저가 저장하고자 하는 쿠키가 담겨있다.
  • 브라우저에 쿠키를 저장한다.
  • 해당 웹사이트를 방문할 때마다 브라우저는 서버에 요청과 함께 해당 쿠키도 전송한다.
  • 서버는 쿠키를 통해 사용자가 누군지 식별한다.

세션

클라이언트와 서버 간 연결이 활성화된 상태로, 쿠키와 마찬가지로 로그인과 같은 사용자 인증을 할때 주로 사용
쿠키클라이언트 쪽 정보를 저장하는 반면, 세션서버 쪽 정보를 저장한다.

쿠키 & 세션 인증 방식

쿠키 & 세션 인증 방식의 문제점

  • 유저가 증가할수록 세션DB에 저장해야 할 데이터가 많아져 저장공간이 많이 필요하고 당연히 서버 부하도 생긴다.

토큰(JWT)

세션 DB를 갖지 않아도 되므로 서버는 유저 인증한다고 많은 일을 하지 않아도 된다

토큰 작동방식

  1. 유저는 id와 pw를 서버에 전송하면 서버는 해당 정보가 일치한다면 AccessToken을 string으로 된 값으로 전송한다.
  2. 이후 웹사이트 방문 시 해당 토큰을 요청할 때마다 서버에 보내야하고 서버는 DB를 거치지 않고 해당 토큰이 유효한 지 검증한다

참고
https://www.youtube.com/watch?v=tosLBcAX1vk
https://dsc-sookmyung.tistory.com/313
https://jwt.io/

profile
물음표를 느낌표로 바꾸며 성장하는 예비 백엔드 개발자입니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 31일

글 잘 봤습니다.

답글 달기