서버 측에 사용자별 데이터를 저장하고 관리하는 방법으로 사용자별 정보를 추적하고 각 사용자에게 로그인 정보, 사용자 기본 설정, 쇼핑 카트 내 품목과 같은 맞춤형 경험을 제공하기 위해 웹 개발에서 자주 사용한다. 클라이언트 측이 아닌 서버 측에 정보를 저장하므로 보안면에서도 유리하다.
세션은 일반적으로 사용자가 웹 애플리케이션에 처음 접근할 때 시작되며 해당 사용자에 대한 고유한 세션 ID가 생성된다. 이 ID는 이후의 각 요청과 함께 클라이언트 측의 쿠키에 저장되어 서버에 다시 보내진다. 이후 서버는 이 세션 ID를 사용하여 해당 세션 데이터를 검색하고 상태를 유지한다.
클라이언트(브라우저) 측에 사용자별 데이터를 저장하고 관리하는 방법으로 요청과 함께 서버로 전송된다. 세션과 마찬가지로 로그인 정보, 사용자 기본 설정, 쇼핑 카트 내 품목과 같은 사용자 세션을 유지한다. 이 외에도 개인 맞춤형 콘텐츠 및 광고, 사용자 동작 추적 등 다양한 목적으로 활용된다. 사용자의 브라우저에 특정 시간 동안만 저장되고 그 이후에는 만료된다.
단, 사용자 동작 추적과 민감한 개인 정보 저장시 악용될 수 여지가 있으므로 쿠키를 비활성해서 개인 정보를 보호하는 편이 좋다. Set-Cookie HTTP 헤더를 사용하여 서버 측에서 설정하거나 JavaScript 또는 기타 클라이언트 측 스크립팅 언어를 사용하여 클라이언트 측에서 액세스 할 수 있다.
세션 쿠키(session cookie)
사용자가 브라우저를 닫을 때 삭제되는 일시적인 쿠키
지속 쿠키(persistent cookie)
사용자의 컴퓨터에 저장되어 만료되거나 수동으로 삭제될 때까지 유지
- | 세션 | 쿠키 |
---|---|---|
저장 위치 | 서버 | 클라이언트 |
보안성 | high | low |
용량 제한 | 없음 | 4KB |
만료 시점 | 브라우저가 종료되거나 클라이언트로부터 일정 기간동안 요청이 없을 시 자동으로 만료 | 만료 기간을 설정하여 해당 기간동안 유지 |