세션이란?

Dami·2023년 11월 3일

Node.js

목록 보기
1/6
post-thumbnail

🔎 Session

세션이란? 서버가 사용자의 상태를 유지하기 위한 방법.

HTTP의 무상태성(Statelessness)

웹은 HTTP 위에서 동작 → HTTP는 '무상태' 프로토콜
즉, HTTP 요청마다 독립적이라는 뜻!!
다시 말해 서버는 두개의 요청이 같은 사용자로부터 왔는지 알 수X


세션의 생성과 활용

세션은 사용자가 서버와 상호작용할 때 생성됨.

🖥️ 서버에서의 세션 처리

  • Server
    - 세션 식별자 (=Session ID)를 생성 → Client(주로 Web Browser)한테 전송

👧 클라이언트에서의 세션 관리

  • Client
    - 세션ID를 쿠키에 저장해서 사용.
    • Client가 서버에 다음 요청을 보낼 때 이 쿠키를 함께 전송 → 서버는 세션ID를 통해 이 요청이 같은 사용자로부터 온 것임을 알게 됨.

예제 코드

const express = require('express');
const session = require('express-session');

const app = express();

// 세션 미들웨어 설정
app.use(session({
  secret: 'my_secret_key',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: false } // HTTPS를 사용하지 않는 경우 'false'로 설정
}));

// 루트 경로에 대한 요청 처리
app.get('/', (req, res) => {
  if (req.session.views) {
    req.session.views++;
    res.type('text/plain');
    res.send(`이 페이지를 ${req.session.views}번 방문했습니다.`);
  } else {
    req.session.views = 1;
    res.type('text/plain');
    res.send('첫 방문입니다! 새로고침을 해보세요.');
  }
});

// 서버 시작
app.listen(3000, () => {
  console.log('3000번 포트에서 서버 대기 중입니다.');
});

0개의 댓글