나만의 작은 도서관
[TIL] 240523 캠프 39일차: 쿠키, 세션, JWT 본문
오늘 배운 내용
쿠키
쿠키는 사용자가 웹 사이트를 방문할 때마다 이전에 방문했던 정보를 기억하는 데이터 파일이다. 쿠키는 세션ID, 만료일, 유효 도메인 등의 정보를 가지고 있으며, 서버에 존재하는 세션에 접근할 수 있도록 하는 신분증과 같은 역할을 한다,
// 쿠키는 Set-Cookie를 통해 설정한다.
Set-Cookie: sessionId=abc123; Expires=Wed, 23 Jun 2024 10:00:00 GMT; Path=/; Domain=.example.com; Secure; HttpOnly
세션
세션은 쿠키를 기반하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버 측에서 관리한다.
세션의 동작 방식
- 클라이언트가 서버에 접속 시 세션 ID를 발급 받음
- 클라이언트는 세션 ID에 대해 쿠키를 사용해서 저장하고 가지고 있음
- 클라이언트는 서버에 요청할 때, 이 쿠키의 세션 ID를 같이 서버에 전달해서 요청
- 서버는 세션 ID를 전달 받아서 별다른 작업없이 세션 ID로 세션에 있는 클라언트 정보를 가져와서 사용
- 클라이언트 정보를 가지고 서버 요청을 처리하여 클라이언트에게 응답
쿠키와 세션 방식을 사용하면 인증받은 기기에서 계정에 연결된 다른 기기의 연결을 해제할 수 있다. 연결 해제를 요청하면 세션을 담당하는 서버가 해당 세션을 더 이상 사용할 수 없는 세션에서 제외하면 되기 때문이다. 이렇듯, 쿠키와 세션 방식은 쿠키만 가지고 있다면 세션에 대한 통제가 가능한데, 세션의 개수가 많아질수록 요구되는 메모리가 늘어난다는 단점이 있다.
JWT
JWT(JSON Web Token)은 웹 표준으로써, 서버와 클라이언트 사이에서 정보를 안전하게 전송하기 위해 도움을 주는 웹 토큰(Web Token)이다. JWT를 사용한 인증 인가 방식은 쿠키와 세션을 사용한 방식과는 다르게 서버과 통제권을 가지고 있지 않다. JWT를 사용하는 방식에서 서버는 요청으로 전달받은 JWT가 유효한지만 판단하기 때문에 JWT가 만료되기 전까지 해당 토큰을 파기할 수 없다. 대신 데이터베이스에서 인증 인가에 대한 정보를 따로 저장하지 않기 때문에 메모리적인 부분에서 부담이 덜하다는 장점이 있다.
오늘의 Trouble Shooting
- 오늘은 해결한 Trouble이 없어요!
오늘 한 일
더보기
- Node.js 숙련주차 1,2주차 강의 자료 1회독
- 개인과제 발제 요구사항 확인
'Today I Learn' 카테고리의 다른 글
[TIL] 240527 캠프 43일차: 유효성 검사 Joi패키지, 정규식, Prisma Client DB 2개 연결 (0) | 2024.05.27 |
---|---|
[TIL] 240524 캠프 40일차: jsonwebtoken 라이브러리의 sign() 함수 (0) | 2024.05.24 |
[TIL] 240522 캠프 38일차: Http Mehod중 PUT과 PATCH의 차이점 (0) | 2024.05.22 |
[TIL] 240521 캠프 37일차: Prisma를 사용해보자 (0) | 2024.05.21 |
[TIL] 240520 캠프 36일차: RDS, Prisma (0) | 2024.05.20 |