본문 바로가기
Server, DevOps

세션(Sessions) vs 쿠키(Cookie) vs 토큰(Token) 차이점은?(feat. 찜질방=세션??!, JWT)

by lumayi 2021. 10. 14.

 

우리는 웹 서버를 이용할 때 세션과 쿠키를 통해서 정보를 주고 받는다!

주로 쿠키나 세션으로 사용자 확인을 하는데

어느날 같이 공부하는 친구가

"근데 쿠키랑 세션이랑 차이가 뭐야?" 라고 물어왔다!

 

음...

하고 대답할 수가 없었다.

 

그래서 공부를 했다!!

 

일단, 아주 쉽게 이야기하자면,

이 세션은 찜질방 시스템과 아주 유사하다!

 

찜질방(브라우저)에 입장하면 우리는 (세션id)를 받는다.

우리의 정보는 찜질방 시스템(서버)에 모두 등록되어 있다.

그 안에서 우리는 그 키로 과자도 사먹고, 안마의자도 하고, 밥도 먹는다!

그 키를 인증하는 과정에서 찜질방 시스템과 찜질방 사이에

몇 번이 얼마나 먹었는지를 전달해주는 정보가 바로 쿠키이고,

이 시스템 자체는 세션이 되는 것이다!

 

 

이제 흐름을 파악했으니 각각의 의미를 제대로 알아보자!!

 


Cookie(쿠키)란?

브라우저는 서버에 필요한 정보의 요청을 보낸다.

그때 서버가 답해주는 정보가 저장되어오는데 그게 바로 쿠키이다!

이 쿠키는 사용자 인증에 관한 정보 말고도 다양한 정보를 담을 수 있다.

쿠키의 유효기간은 1주에서 한 달까지 다양하다.

 

 

Session이란?

Session이 필요한 이유부터 알아보자!

http. 웹사이트를 이용할 때는 stateless라는 프로토콜이 쓰인다.

이 프로토콜은 서버로 브라우저가 요청을 보내고, 서버가 응답하는 순간 끝이나는 프로토콜이다.

 

그러다보니 이전의 요청을 하나도 기억하지 못하고, 서로 전혀 연결되어 있지 않다.

그래서 사용자를 기억해서 확인할 수 있는 것이 필요해졌는데

그게 바로 세션이다.


 

Session과 Cookie의 프로세스 순서을 알아보자!

 

Server Session DB Browser
    1. 브라우저가 서버에게
사용자 정보 확인을 요청한다
2. 서버는 정보가 맞는지 확인을 한다 3. 맞다면 Session DB를 생성한다.  
  4. 사용자 Session DB의 해당하는
ID 정보가 쿠키로 서버에 보내진다. 
 
5. 서버는 쿠키를 브라우저에게 보낸다   6. 쿠키를 받아
브라우저에 저장하고 처리한다.

 

즉, Cookie는 우리가 Session을 이용하는 과정에서

Session ID를 전달하기 위한 수단일 뿐인것이다!

 

 

 

그렇다면 토큰은 무엇일까?

 

어플리케이션에서도 똑같이 세션을 이용하여 서버와 정보를 주고받을 수 있다!

하지만 어플에는 쿠키가 없다!!

쿠키는 웹에서만 존재하는 형태이기 때문이다.

그래서 쿠키대신 어플에서 서버로 보내는 것이 바로 '토큰'이다.

 

쿠키만 토큰으로 바뀌었을 뿐,

전체적인 세션의 과정은 모두 동일하다!

 

하지만 토큰은 세션과 다르게 쓸 수 있는 방법도 있다.

이제 토큰의 장점에 대해서 알아보자!

 

아무래도 세션을 이용하면

서버는 모든 사용자마다의 session id를 저장해야하고,

매 요청마다 그 세션id와 DB가 일치한지 확인해야하니

규모가 커질수록 더 많은 DB 리소스가 필요해지게 된다.

 

이 때 우리가 토큰 형식의 JWT라는 것을 쓸 수 있다.

  JWT(토큰) Session
서버 DB 정보 일치 시에는? 사용자 정보로 '사인' 인증을 한다.
(DB생성 X)
서버의 session db에 id를 생성한다.
(DB생성 O)
인증 처리방법은? 사인된 정보는 string형태로 보내진다. session id정보로 보낸진다.
길이와 공간은? 상대적으로 길다. 크기제약x 상대적으로 짧다. (쿠키 크기제약o)

 

이러한 차이점이 있고 이 JWT를 이용한 것이

우리가 요즘 QR로 신분인증(접종정보 등)을 하는 것이다!

 

전국민의 정보를 서버에 저장하고 확인하지 않아도

간단하게 '사인'방식을 이용한 토큰으로 개인 확인이 가능한 것이당!

와우~

 

니꼬쌤의 도움으로 정리한 너무 알찬 공부였다!

아직 무슨 말인지 잘 모르게다면 영상도 꼭 한 번 보세요!

 

 

 

참고 동영상:

https://www.youtube.com/watch?v=tosLBcAX1vk

 

 

반응형