Welcome! Everything is fine.

#03. 쿠키(Cookie)와 세션(Session) 본문

CS 스터디

#03. 쿠키(Cookie)와 세션(Session)

개발곰발 2024. 1. 23.
728x90

쿠키와 세션은 왜 사용하는가?

HTTP 프로토콜의 특성(Connectionless / Stateless)을 보완하기 위해 사용한다. 

  • Connectionless : 클라이언트가 서버에 request를 보낸 후, 서버가 response를 보내면 연결을 끊는 특징
  • Stateless : 통신이 끝나면 상태를 유지하지 않는 특징

만약 쿠키와 세션이 없다면 새 페이지를 열 때마다 팝업창이 뜰 것이고, 로그인 정보는 매번 사용자가 입력해야 할 것이다. 사용자 식별이나 상태 유지, 혹은 광고 타겟팅에도 쿠키와 세션이 사용될 수 있다.

쿠키

쿠키(Cookie)란 클라이언트(브라우저)에 저장되는 데이터 파일로, 브라우저를 종료해도 설정된 만료 날짜까지 남아있게 된다. 모든 HTTP 요청에 쿠키가 자동으로 첨부되어 서버로 전송된다. 보안 수준은 비교적 낮다. 클라이언트(브라우저)에 저장되므로 클라이언트가 쿠키를 변조할 수 있다. 쿠티의 구성 요소로는 이름, 값, 유효 시간, 도메인, 경로가 있다.

세션

세션(Session)이란 쿠키를 기반으로 동작하지만 쿠키와 달리 클라이언트가 아닌 서버에 저장된다. 클라이언트가 요청을 보내면 해당 서버 엔진이 클라이언트에게 Session ID를 부여한다. 세션은 브라우저를 종료하면 만료 날짜와 상관없이 소멸된다. 데이터를 서버에 두기 때문에 비교적 보안 수준이 높다. 그러나 사용자가 많아지면 그만큼 서버 메모리를 차지하게 된다.

쿠키와 세션의 차이

  • 정보가 저장되는 위치 : 쿠키는 브라우저에 저장되고, 세션은 서버에 저장된다.
  • 보안 : 클라이언트에 저장되는 쿠키보다 서버에 저장되는 세션이 비교적 보안 수준이 높다. 따라서 쿠키에 민감한 정보를 저장하는 것은 피하는 것이 좋다.
  • 요청 속도 : 서버의 처리가 필요없는 쿠키가 세션보다 더 빠르다. 
  • 유지 기간 : 쿠키는 설정한 만료 날짜까지 지속되는 반면, 세션은 만료 날짜가 있더라도 일반적으로 브라우저 세션 동안만 유지된다. 사용자의 세션이 종료되거나 만료되면 해당 세션에 연결된 데이터가 삭제된다.

참고

쿠키와 세션 개념 (tistory.com)

쿠키(Cookie)와 세션(Session) (velog.io)

쿠키(Cookie)와 세션(Session)의 차이 (+캐시(Cache)) (tistory.com)