[NestJS] 쿠키와 세션이란?Node.js2022. 11. 19. 16:00
Table of Contents
쿠키와 세션을 함께 설명하는 이유:
이 둘의 특징이 비슷하며 차이점이 명확하기 때문에 비교하면서 배우면 습득하기 편함.
먼저, 개요부터 봅시다.
개요
쿠키란?
쿠키는 브라우저에 휘발성 데이터를 저장하는 방식
세션이란?
세션은 서버에 휘발성 데이터를 저장하는 방식
이 둘은 자주 사용되는 데이터를 빨리 꺼내사용해야 하는 경우 사용됩니다.
세션, 쿠키로 사용하는 이유는 뭘까요?
HTTP의 특징 때문입니다.
- Connectionless(비 연결지향): HTTP의 기본적으로 요청&응답만 하고 끊어버립니다.
- Stateless(상태정보유지안함): HTTP는 상태정보 저장 안함. 그래서 세션 혹은 쿠키로 데이터를 저장합니다.
쿠키와 세션의 차이
쿠키 | 세션 | |
저장 위치 | 브라우저(로컬) | 서버 |
보안성 | 낮음 | 높음 |
수명 | 반영구 | 브라우저 종료시 삭제 |
속도 | 빠름 | 느림 |
쿠키의 Flow
- 웹 브라우저에서 서버로 요청
- 상태를 유지하고 싶은 값을 쿠키로 생성
- 서버가 응답할 때 HTTP 헤더에 쿠키를 포함해서 전송
- 전달받은 쿠키는 웹 브라우저에서 파일 단위로 저장합니다.
- 이후에는 이 쿠키를 포함하여 요청
세션의 Flow
- 웹 브라우저가 서버에 요청
- 서버 내부에서 해당 클라이언트에게 세션 ID를 부여
- 서버가 응답할 때 HTTP 헤더에 세션 ID를 포함해서 전송
- 웹 브라우저는 이후 웹 브라우저를 닫기까지 부여된 세션 ID를 기억합니다.
- 이후에는 세션ID를 포함하여 요청합니다.
- (브라우저를 종료하면 세션 ID를 삭제합니다.)
NestJS 쿠키 문서
import * as cookieParser from 'cookie-parser';
// 이니셜라이제이션 파일에 넣으세요.
app.use(cookieParser());
https://docs.nestjs.com/techniques/cookies
NestJS 세션 문서
import * as session from 'express-session';
// 이니셜라이제이션 파일에 넣으세요.
app.use(
session({
secret: 'my-secret',
resave: false,
saveUninitialized: false,
}),
);
https://docs.nestjs.com/techniques/session
참고 자료
'Node.js' 카테고리의 다른 글
[NestJS 에러] node @nestjs/schematics:module --name=auth --no-dry-run --no-skip-import --language="ts" --source-root="src" --spec --no-flat (0) | 2023.01.17 |
---|---|
Reddit API로 게시글 가져오기 (3) | 2022.12.11 |
[NestJS] TypeORM 논리 삭제(soft delete)와 물리 삭제(hard delete) (0) | 2022.11.09 |
[NestJS] 에서 puppeteer 사용하기 (0) | 2022.10.22 |
[NestJS] Swagger 바디 타입 여러개 명시하기 (0) | 2022.10.17 |
@임채성 :: 푸르고 개발 블로그
글 내용 중 잘못되거나 이해되지 않는 부분은 댓글을 달아주세요! 감사합니다! 문의: puleugo@gmail.com