쿠키와 세션

배병일 ㅣ 2024. 2. 16. 16:24

쿠키(Cookie)와 세션(Session)은 웹 개발에서 사용되는 두 가지 중요한 개념으로,

웹 애플리케이션의 상태를 관리하고 사용자와 상호 작용하기 위해 사용됩니다.

 

이 둘은 다음과 같이 정의되며, 주요한 차이점이 있습니다

 

쿠키(Cookie)

클라이언트 측에서 저장되는 작은 데이터 조각으로, 주로 브라우저에 저장된다.

 

서버에서 클라이언트(브라우저)로 전송되며, 클라이언트 측에서 관리된다.

 

주로 텍스트 형태의 데이터로, 이름-값(key-value) 쌍으로 저장된다.

 

만료 기간을 설정할 수 있으며, 만료되면 자동으로 삭제된다.

 

세션(Session)

서버 측에서 상태 정보를 유지하는 데 사용되는 메커니즘으로

클라이언트 측에는 SessionId가 부여되고 데이터는 서버에 저장된다.

 

일반적으로 서버 측에서 메모리데이터베이스에 저장된다.

 

보안 면에서는 쿠키보다 안전하며, 민감한 정보를 저장하기에 더 적합하다.

 

차이점

위치

  • 쿠키는 클라이언트 측에 저장되고 관리되며, 세션은 서버 측에서 유지된다.


데이터 크기

  • 쿠키는 작은 데이터 양을 저장하는 데 사용되며, 세션은 대부분의 데이터를 저장할 수 있다.


보안

  • 세션은 쿠키보다 상대적으로 보안이 더 높다.
  • 세션 데이터는 클라이언트에 직접 노출되지 않고, 서버에 안전하게 저장된다.


수명:

  • 쿠키는 만료 날짜를 설정할 수 있으며, 클라이언트에서 지정한 만료 시간에 자동으로 삭제된다.
  • 세션은 클라이언트가 로그아웃하거나 브라우저를 닫을 때 종료된다.
  • 보통은 쿠키와 세션을 조합하여 웹 애플리케이션의 상태를 관리된다.
  • 쿠키는 클라이언트 측에서 빠르게 정보를 확인하고, 세션은 중요하고 민감한 정보를 안전하게 관리하는 데 사용된다.

 

세션 추가 설명

만약 스케일아웃과 같은 작업이 이뤄질 경우
세션 서버사이드와 클라이언트에 부여된 세션ID가 날라갈 수 있는데

이를 방지하기위해 여러 인스턴스간 세션 공유를 해야하고
이때 일관성 유지를 위해 하나의 중앙 서버에서 관리하도록 하는게 좋다.

하지만 이럴경우 중앙 서버의 부하가 증가할 수 있고
이를 방지하기위해 redis와 같은 라이브러리를 이용할 수 있지 않을 까 생각한다.

'긁적..' 카테고리의 다른 글

rest api  (0) 2024.02.15
중복된 예외처리, 미들웨어로 처리  (0) 2023.09.25
MVC 패턴  (0) 2023.08.17
8딱8딱 KPT회고  (0) 2023.08.14
SpartaTeam_8딱8딱 SA  (0) 2023.08.07