쿠키(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 |