Computer Science/BackEnd

Backend 기초 #2 | 쿠키(Cookie), 세션(Session)이란?

토마토. 2022. 8. 5. 12:02

[출처] Tìm hiểu về Session và Cookie (viblo.asia)

 

웹 상에서 클라이언트와 서버가 정보를 주고 받는 방식을 규정하는 HTTP비연결 프로토콜(Connectionless Protocol), 비상태 프로토콜(Stateless protocol) 특성으로 인해 페이지의 상태를 기억하지 못한다. 이 때문에 사용자는 웹페이지에 접속할 때마다 새롭게 로그인하는 등 이전에 수행했던 작업을 반복해야할 수 있다. 

 

이를 극복하기 위해 쿠키(Cookie)와 세션(Session)이 등장한다. 

쿠키(Cookie)와 세션(Session)은 모두 웹 통신에서 필요한 정보를 저장하기 위한 방식이다. 

 

  • 쿠키(Cookie)

쿠키(Cookie)는 서버에 요청해서 사용자 PC에 저장하는 client의 정보/상태 등의 데이터를 의미한다. 

쿠키(Cookie)에 포함되는 데이터에는 사용자 ID, 비밀번호, 방문한 사이트 등이 있다. 

이 정보를 쿠키(Cookie)는 사용자의 PC에 저장되었다가, 사용자가 다시 해당 웹사이트에 접속할 때 쿠키가 클라이언트 Request header에 포함되어 요청 메시지(request)를 보내게 된다. 이를 통해 웹 서버가 사용자의 정보를 바로 파악할 수 있게 되는 것이다. 

 

  • 세션(Session)

쿠키(Cookie)가 사용자 PC에 저장된다면, 세션(Session)은 서버DB에 데이터를 임시로 저장하는 방식이다. 

세션(Session)은 사용자가 웹사이트에 머무는 동안에만 서버DB에 사용자 정보를 저장한다. 

사용자가 브라우저를 종료하면, 세션(Session)은 사라지는 정보다.

브라우저마다 최대 4KB의 데이터를 저장할 수 있는 쿠키(Cookie)와 달리 세션(Session)은 거의 무제한의 데이터를 저장할 수 있다.

 

 

참고

Tìm hiểu về Session và Cookie (viblo.asia)

Difference between Session and Cookies - GeeksforGeeks

[펌질]쿠키의 진실 : 네이버 블로그 (naver.com)

Cookie의 보안 취약점에 대해 :: margalog (tistory.com)