node.js 세션

HELL WORLD + o·2021년 6월 29일
0

세션이란 클라이언트와 서버 간의 논리적인 연결을 유지하는 것입니다.세션은 세션ID, 세션TABLE으로 이뤄져있습니다. 먼저, 세션TABLE은 키, 밸류로 이뤄져 있습니다. 세션 TABLE 생성 방법은 아래와 같습니다.

req.session.키 = 밸류;

선언과 동시에 테이블이 만들어집니다.

세션이 논리적인 연결이라면 연결이 끊어질 수도 있겠죠? 간단히 2가지 경우에 세션이 사라지는데요. 서버가 꺼질 경우와 세션의 유효시간이 초과할 경우입니다. 이를 통해 세션이 메모리에 있다는 걸 알 수 있습니다.

로그인을 하고 일정시간이 지난 후 자동으로 로그아웃이 되있는 경험을 해본 적이 있을 겁니다. 세션의 유효시간이 초과했기 때문이지요.

세션ID를 설명하기 전 먼저 쿠키에 대해 설명하겠습니다. 세션이 서버에 저장된 텍스트 파일이라면 쿠키는 클라이언트(브라우저)에 저장된 작은 텍스트 파일이죠. 그렇다면 쿠키는 누가 만든 걸까요? 바로 서버입니다. 서버가 쿠키를 만든 다음 클라이언트에 전달해줍니다.

지난주에 방문한 A온라인 쇼핑 사이트에서 본 신발이 오늘도 A사이트에서 보이네요. 로그인도 안했는데 어떻게 알았지? 다 쿠키 덕분이죠. 브라우저는 여러분을 기억하고 있습니다.

자 그럼 세션ID는 뭘까요? 네! 맞습니다. 쿠키입니다. 쿠키에 저장된 세션ID를 통해 서버의 세션TABLE에 접근할 수 있습니다.

세션ID를 만든이 : 서버 세션ID를 저장한이 : 클라이언트(쿠키)

아이디 자동생성 기능도 바로 브라우저에 저장된 쿠키 때문에 가능한 것입니다. 쿠키의 유효기간은 쿠키를 만들어준 서버에 의해 정해집니다. 길게는 1년도 보관할 수 있네요. 유통기한이 길죠?

0개의 댓글