세션 & 쿠키

‍정진철·2023년 1월 11일
0

Nodejs

목록 보기
4/10

유저를 기억하게 만들기 !

기억하다는 것..

로그인 이후 여타 다른 페이지를 이동하여도 브라우저는 우리가 계속 로그인 됬다는걸 "기억"하고 있음.

첫번째 방법 !

유저에게 쿠키를 보내준다.
쿠키를 알아보기 이전에
세션을 알아보자

세션

세션이란 백엔드와 브라우저 간에 어떤 소통이 이루어졌는지 기억하는 것을 뜻함.
즉, 세션은 백엔드와 브라우저 사이의 memory, history 와 같은 것.

보통은 유저가 웹 페이지 상에서 이리저리 페이지를 옮겨다니면 즉, http 요청을 보내고 응답 받으면 더이상 서버가 필요치 않게 되므로 서버와 브라우저 간의 연결성이 유지 되지 않음. ==> 이것을 stateless (무상태성) 이라고 함.

그래서 우리는 유저한테 특정 정보를 남겨줘야 함.
유저가 로그인 할 때 마다 무언가의 정보를 전달 해줘야 함.

간단하게 말하면, 유저가 특정 행동 시 서버가 기억할 수 있도록 작은 메시지를 손에 쥐어주고 마패와 같은 역할을 할 수 있도록 함. (유저 또한 해당 마패를 나에게 달라고 요청)

과정


이와 같이 브라우저에서 F12를 눌러 애플리케이션 탭에 들어가면 해당 문자열과 같은 것을 확인 할 수 있으며 새로고침 할 때 마다 다음의 정보를 브라우저에서 백엔드(서버)에게 보내는 것 이다.

세션

쿠키를 브라우저에서 서버 측으로 보내면 해당 정보를 백엔드는 세션이라는 형태로 다음과 같은 문자열로 저장.

즉, 세션과 세션id는 서버 측에서 브라우저를 기억하는 방법.


정리하자면 브라우저는 쿠키, 서버는 세션 이라는 걸 각자 가지고 있고 브라우저가 요청을 보낼 때 마다 서버는 쿠키에서 세션id를 가져와 브라우저에게 전송시켜주고(브라우저 역시 세션id를 보유하고 있음) 서버는 해당 세션id를 읽고 유저가 누군지 확인.

실생활 적으로 비유하자면,,

허락된 사람들만이 우리집에 오게 되도록 허락하기 위해서 그들만을 위한 ID카드를 부여해주는 것. 하지만 집주인은 손님들이 마스크를 썼을 수 도 있고 변장한 채 올 수도 있으므로 신원을 보장할 수 있는 ID카드를 부여함으로서 해당 손님들을 확인할 수 있게 되는 것이다.

profile
WILL is ALL

0개의 댓글