Cookie의 MaxAge, Expires 옵션

young0_0·2023년 4월 4일

Cookie?

쿠키는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각이다. 브라우저는 이 데이터 조각을 저장해 놓았다가 동일한 서버에 재 요청시 이 정보를 함께 전송한다.
쿠가가 클라이언트 측에 정보를 저장할 수 있는 유일한 방법이 였을 때에는 클라이언트 측에 정보를 저장하기 위해 쿠키가 주로 사용 되었지만, 모든 요청 마다 쿠키가 함께 전송되기 때문에 성능 저하의 원인이 될 수 있어 지금은 클라이언트 측에 데이터를 저장하기 위해서 로컬스토리지나 세션스토리지를 사용 하는 것이 좋다.

쿠키목적

  • 세션 관리 (Session Management) : 서버에 저장해야 할 로그인,장바구니 등의 정보 관리
  • 개인화 (Personalization) : 사용자 선호, 테마 등의 정보 관리
  • 트레킹(Tracking) : 사용자 행동을 기록하고 분석하기 위한 정보 관리

쿠키 속성

서버에서 쿠키를 전송할 때 만료일, 지속 시간 도메인, 경로 속성 등을 추가해서 전송 할 수 있습니다. 만료된 쿠키는 서버로 다시 전송되지 않습니다. 도메인과 경로 속성이 정의 되었다면, 특정 도메인과 경로에만 쿠키를 전송 할 수 있도록 제한할 수 있습니다.

라이프 타임 속성

쿠키가 유지되는 시간을 지정할 수 있는 속성으로 Expires와 Max-Age 두가지가 있습니다.

Expires

속성에 정의된 날짜에 삭제되는 쿠기를 만든다.

expires=Tue, 19 Jan 2038 03:14:07 GMT

Max-Age

속성에 정의된 기간 이후에 삭제되는 쿠키를 만든다.

max-age=3600

max-age는 expires 옵션의 대안으로, 쿠키 만료 기간을 설정할 수 있게 해줍니다. 현재부터 설정하고자 하는 만료일시까지의 시간을 초로 환산한 값을 설정합니다.
0이나 음수값을 설정하면 쿠키는 바로 삭제 된다.

Expires 와 Max-age 설정되어 있지 않으면

Expires (유효일자)나 Max-age(만료기간) 옵션이 지정되어있지 않으면, 브라우저가 닫힐 때 쿠키도 함께 삭제된다. 이런 쿠기를 "세션 쿠키"라고 부른다.

세션쿠키

세션쿠키는 현재 브라우저의 세션이 끝날 때 삭제되는 쿠키 이다.
크롬 브라우저에서 크롬을 종료한후에도 쿠키가 남아 있는 이슈가 있는데, 백그라운에서 동작하고 있는 크롬 프로세스를 모두 종료해야 세션 쿠키가 삭제 된다.

참고
https://beomy.github.io/tech/browser/cookie/
https://ko.javascript.info/cookie

profile
그냥하기.😎

0개의 댓글