세션(Session)은 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법을 말한다. 쿠키가 클라이언트에 모든 데이터를 저장하는 것과 달리 세션은 서버에 데이터를 두고, 세션의 키값만을 클라이언트에 남겨두어 보안이 강화된 방식이다.
세션의 작동 방식은 다음과 같다.
위 구조에서 세션은 쿠키를 단지 키(세션 ID)로 사용하는 것을 볼 수 있다. 이는 인증의 책임을 서버가 지게 하기 위한 것으로 서버를 해킹하는 것이 상대적으로 어려울 것이기 때문에 쿠키에 비해 더욱 보안이 강화된 방법이라고 할 수 있다.
Node.js에서 세션을 구현하기 위한 미들웨어로 'express-session'이 존재한다. 이는 Node.js 시리즈에서 실제 코드를 통해 작성해 보려한다.
세션은 역시 세션/쿠키를 위한 별도의 저장공간을 필요로 하기 때문에 서버에 부하가 생기게 된다. 이는 다음에 다룰 토큰 기반 인증을 통해 해결할 수 있다.