- 서버와 클라이언트 간 지속적인 상태 유지를 위해 존재
쿠키(Cookie)
- HTTP 쿠키는 상태가 있는 세션을 만들도록 해 줌
- 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각
- 사용자가 웹사이트를 방문할 경우 해당 웹사이트의 서버를 통해 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일
- 브라우저(클라이언트)는 쿠키를 로컬에 KEY-VALUE의 데이터 형식으로 저장
- 동일한 서버에 재요청 시 저장된 쿠키를 함께 전송
- 쿠키는 두 요청이 동일한 브라우저에서 들어 왔는지 여부를 판단할 때 주로 사용
- 이를 이용하여 사용자의 로그인 상태를 유지할 수 있음 (매 요청마다 쿠키를 함께 전송)
- 상태가 없는(stateless) HTTP 프로토콜에서 상태 정보를 기억시켜 주기 때문
- 즉, 웹 페이지에 접속하면 웹 페이지를 응답한 서버로부터 쿠키를 받아 브라우저에 저장하고, 클라이언트가 같은 서버에 재요청 시마다 요청과 함께 저장해 두었던 쿠키도 함께 전송
쿠키 사용 목적
- 세션 관리(Session Management)
- 로그인, 아이디 자동완성, 공지 하루 안보기, 팝업 체크, 장바구니 등의 정보 관리
- 개인화(Personalization)
- 트래킹(Tracking)
- 사용자 행동을 기록 및 분석
- 사용자 맞춤 광고 등에도 활용
쿠키의 수명(Lifetime)
- Session Cookie
- 현재 세션(current session)이 종료되면 삭제됨
- 브라우저 종료와 함께 세션이 삭제됨
- Persistent Cookies
- Expires 속성에 지정된 날짜 혹은 Max-Age 속성에 지정된 기간이 자나면 삭제됨
세션 (Session)
- 사이트와 특정 브라우저 사이의 상태를 유지시키는 것
- 클라이언트가 서버에 접속하면 서버가 특정 session id를 발급하고, 클라이언트는 session id를 쿠키에 저장
- 클라이언트가 다시 동일한 서버에 접속하면 요청과 함께 쿠키를 서버에 전달
- 쿠키는 요청 때마다 서버에 함게 전송되므로 서버에서 session id를 확인해 알맞은 로직을 처리
- session id는 세션을 구별하기 위해 필요하며 쿠키에는 session id만 저장