쿠키와 세션은 웹 개발에서 사용자 상태를 관리하는 두 가지 주요 개념입니다!
이 두 가지 개념을 서로 다른 방식으로 작동하지만, 사용자 경험을 향상시키고 웹 애플리케이션의 기능을 지원하는 데 중요한 역할을 합니다
HTTP는 웹 상에서 데이터를 전송하는 데 사용되는 프로토콜이다
무상태성(Stateless): 각 요청은 독립적으로 처리되며, 이전 요청에 대한 정보를 유지하지 않는다비연결성(Connetionless): 요청과 응답이 완료되면 연결이 종료된다미디어 독립성(Media Independence): 다양한 형식의 데이터를 전송할 수 있다
쿠키와 세션의 사용 이유
HTTP의 무상태성과 비연결성 때문에, 쿠키는 클라이언트 측에 데이터를 저장하고, 세션은 서버 측에서 데이터를 관리한다쿠키는 웹 서버가 사용자의 브라우저에 전송하는 작은 데이터 조각이다. 브라우저는 이 데이터를 저장하고, 이후 동일한 서버에 요청을 보낼 떄 함께 전송한다.
세션 관리(Session Management): 로그인 상태나 장바구니 정보를 유지한다개인화(Personalization): 사용자 선호도나 테마 설정을 저장한다트래킹(Tracking): 사용자 행동을 기록하고 분석한다쿠키는 세션 쿠키와 영구 쿠키로 나뉜다. 세션 쿠키는 브라우저가 닫히면 삭제되며, 영구 쿠키는 지정된 만료일까지 브라우저에 남아 있다
웹 서버와 클라이언트 간의 상호작용 시 생성되는 일시적인 상태 정보이다. 세션은 서버 측에서 관리되며, 사용자의 인증 정보나 상태를 저장한다.
서버 측 저장: 사용자 정보는 서버에 저장되며, 클라이언트 세션 ID를 통해 접근한다일시적: 세션은 일정 시간이 지나면 만료되며, 브라우저가 닫히면 소멸될 수 있다고유 식별자: 각 클라이언트에게 고규한 세션 ID가 할당된다| 특징 | 쿠키 | 세션 |
|---|---|---|
| 저장위치 | 브라우저 | 서버 |
| 데이터 보안 | 상대적으로 취약 | 보안성이 높음 |
| 데이터 크기 | 제약적 | 상대적으로 큼 |
| 사용 목적 | 개인화, 트래킹, 세션 관리 | 상태 정보 유지, 인증 관리 |
| 유효 기간 | 지정일 만료일까지 | 일정 시간 후 만료 |
로그인 상태 유지: 사용자가 로그인한 상태를 유지하기 위해 쿠키에 사용자 식별자를 저장한다. 이를 통해 사용자가 사이트를 이동해도 로그인 상태가 유지된다개인화 설정: 사용자의 언어 설정, 테마 설정 등 개인화된 환경을 쿠키에 저장하여 사용자가 사이트를 재방문했을 때 동일한 환경을 제공한다트래킹 및 광고 타겟팅: 사용자의 행동을 기록하고 분석하여 맞춤형 광고를 제공한다. 쿠키는 사용자가 방문한 사이트를 추적하는 데 사용된다보안 정보 관리: 온라인 뱅킹이나 쇼핑몰에서 사용자의 로그인 상태와 결제 정보를 안전하게 관리하기 위해 세션을 사용한다. 세션은 서버 측에 저장되므로 보안성이 높다장바구니 관리: 쇼핑몰에서 사용자가 선택한 상품 정보를 세션에 저장하여 사용자가 결제 페이지로 이동할 때도 해당 정보를 유지한다로그인 시도 횟수 제한: 사용자의 로그인 시도 횟수를 세션에 기록하여 일정 횟수 이상의 실패 시 계정 잠금 등의 보안 조치를 취할 수 있다