서버가 클라이언트에 유일하고 암호화된 id(session)를 부여하는 인증 방식으로 암호화된 세션(신분증의 역할)으로 요청이 전달되면 확인 후 그 요청이 반영된다.
쿠키가 클라이언트에 정보를 저장하는 방식이었다면, 세션은 데이터를 서버에 저장하고, 쿠키에는 데이터를 암호화된 상태로 부여한다.
단점은 서버의 메모리에 저장하므로 가용메모리가 점점 줄어들어 서버의 성능이 안좋아질 수 있다.
설명 | 접속 상태 저장 경로 | 장점 | 단점 | |
---|---|---|---|---|
Cookie | 그저 http의 stateless한 것을 보완해주는 도구 | 클라이언트 | 서버에 부담을 덜어줌 | 쿠키 그 자체는 인증이 아니다. |
Session | 접속 상태를 서버가 가짐(stateful) 접속 상태와 권한 부여를 위해 세션아이디를 쿠키로 전송 |
서버 | 신뢰할 수 있는 유저인지 서버에서 추가로 확인 가능 | 하나의 서버에서만 접속 상태를 가지므로 분산에 불리 |
req.session
이 세션 객체 ⇒ req.session
으로 세션 데이터를 저장거나 불러올 수 있다.