쿠키와 세션

yujin·2023년 11월 29일
0

TIL

목록 보기
19/48
post-thumbnail

쿠키와 세션 이해하기


1. 쿠키와 세션이란?

쿠키(Cookie)세션(Session)은 HTTP 프로토콜의 상태 유지를 위한 기술이다. HTTP는 상태를 유지하지 않는 프로토콜이므로, 이를 보완하기 위해 쿠키와 세션을 사용한다.

2. 쿠키와 세션의 특징

쿠키(Cookie)

클라이언트에 저장되는 작은 텍스트 파일로, 이름과 값의 쌍으로 이루어진다. 만료 기간을 설정할 수 있으며, 웹 브라우저를 닫아도 삭제되지 않는다.

세션(Session)

서버에서 관리되는 저장 공간으로, 사용자별로 세션 ID를 부여해 구분한다. 웹 브라우저를 닫으면 세션은 종료된다.

3. 쿠키와 세션의 활용 사례

쿠키와 세션은 사용자 인증, 장바구니, 개인화 등 다양한 기능을 구현하는 데 사용된다.

4. 쿠키와 세션의 장점과 단점

장점

  • 사용자의 상태를 유지할 수 있다.
  • 사용자에게 개인화된 서비스를 제공할 수 있다.

단점

  • 쿠키는 클라이언트에 저장되므로 보안에 취약하다.
  • 세션은 서버의 메모리를 차지하므로 많은 사용자가 접속하면 서버 부하가 발생할 수 있다.

5. 쿠키와 세션의 구현

쿠키(Cookie) 예제

  • JavaScript의 document.cookie를 사용해서 쿠키를 생성하고 읽을 수 있다.
// 쿠키 생성
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";
// 쿠키 읽기
let allCookies = document.cookie;

세션(Session) 예제

  • 서버 사이드 언어(PHP, Node.js 등)를 사용해서 세션을 구현한다. Node.js의 express- session 미들웨어를 예로 든다.
const express = require('express');
const session = require('express-session');

let app = express();

app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}));

app.get('/', (req, res) => {
  req.session.views = (req.session.views || 0) + 1;
  res.end(req.session.views + ' views');
});

app.listen(3000);

6. etc

배운지는 조금 됐던 쿠키와 세션인데, 여태 적용 못 시켜보기도 했고 마침 다시 한번 복습하고 있는 상태라 TIL로 적어본다.

profile
고통 받는 코딩일기

0개의 댓글