세션(Session)과 쿠키(Cookie)
쿠키(Cookie)세션(Session)쿠키 & 세션 작동 방식Express에서 세션 사용 예제쿠키 vs 세션 비교기본 개념웹 서버와 브라우저(클라이언트)는 기본적으로 stateless(무상태성) 을 가진다.→ 즉, 한 번의 요청
zing829.tistory.com
왜 세션(session)을 사용할까?
웹 애플리케이션에서 로그인 기능은 필수 요소다. 로그인 후 사용자가 지속적으로 로그인 상태를 유지할 수 있도록 하기 위해서는 세션과 쿠키는 중요한 역할을 한다.
세션과 쿠키의 차이
세션과 쿠키는 모두 상태를 저장하는 방법이지만, 저장 위치와 동작 방식에서 차이가 있다.
🗄️세션
- 서버 측에 데이터를 저장한다.
- 클라이언트는 세션 ID만을 저장하고, 실제 데이터는 서버에 보관된다.
- 세션은 일시적으로, 서버에서 세션이 만료되면 더 이상 사용할 수 없다.
- 보통 로그인 정보나 사용자 데이터를 서버에 안전하게 저장할 때 사용된다.
🍪쿠키
- 클라이언트 측에 데이터를 저장한다.
- 사용자가 브라우저를 닫거나 다시 접속해도 저장된 데이터를 확인할 수 있다. → 전원이 꺼져도 데이터 안사라짐
- 하지만 쿠키의 크기 제한이 있고, 사용자가 쿠키를 삭제할 수도 있다.
Express에서 세션 미들웨어 구현하기
Express에서 세션을 관리하려면 express-session 미들웨어를 사용해야 한다.
npm install express-session
설치한 후, 애플리케이션에 세션 미들웨어를 추가한다.
세션 ID와 쿠키의 역할
브라우저가 첫 번째로 서버에 요청을 보낼 때, 서버는 새로운 세션을 생성하고 세션 ID를 클라이언트의 쿠키에 저장한다. 그 후, 브라우저는 서버에 요청을 보낼 때마다 쿠키에 저장된 세션 ID를 함께 보내게 된다.
이렇게 함으로써, 서버는 클라이언트를 식별하고, 이후 요청에서도 로그인 상태를 유지할 수 있게 된다.
따라서, 쿠키에 저장된 세션 ID를 통해 사용자는 계속 로그인 상태를 유지할 수 있고, 서버는 클라이언트의 세션을 추적할 수 있게 된다.
세션 관리 흐름
- 첫 번째 요청:
- 사용자가 서버에 처음 요청 보냄 - 서버는 세션을 생성하고, 세션 ID를 쿠키에 저장하여 브라우저로 응답
- 이후 요청:
- 브라우저는 요청 시 쿠키에 저장된 세션 ID를 함께 보냄 - 서버는 이 세션 ID를 확인하고, 해당 세션을 복원하여 사용자의 로그인 상태를 유지
- 세션 만료:
- 서버에서는 일정 시간이 지난 후 세션을 만료시키거나 사용자가 로그아웃할 때 세션을 삭제할 수 있다.
'개발공부 > Node.js' 카테고리의 다른 글
라우트? 라우터? (1) | 2025.01.24 |
---|---|
HTTP method (3) | 2025.01.23 |
package.json이 왜 중요할까? (1) | 2025.01.22 |
왓 더 PUG (0) | 2025.01.11 |
module (import,export) (0) | 2025.01.09 |