Cookie의 MaxAge, Expires 옵션

SB22·2023년 4월 4일
0

기술면접준비

목록 보기
11/15

Q. Cookie의 MaxAge, Expires 옵션이 무엇인지, 설정하지 않으면 어떻게 되는지 설명해주세요.

Session Cookie & Permanent Cookie

브라우저를 종료하면 삭제되는 임시 쿠키를 세션 쿠키(Session Cookie)라고 하고, 브라우저의 종료 여부와 상관없이 설정한 옵션만큼 사용 가능한 쿠키를 지속 쿠키(Persistent Cookie or Permanent Cookie)라고 한다.
Permanent 쿠키는 쿠키를 생성할 때, Expires 또는 Max-Age 옵션을 추가한다.

expires와 max-age

쿠키의 유효일자 또는 만료기간을 지정한다.

expires나 max-age 옵션을 설정하지 않으면, 브라우저를 닫을때 쿠키도 함께 삭제된다. 이런 쿠키를 세션쿠키(session-cookie)라고 한다.

expires나 max-age 옵션을 설정하면, 브라우저를 닫아도 쿠키가 삭제되지 않는다. expires와 max-age를 둘다 설정하면, max-age가 우선 적용된다.

expires

expires는 쿠키가 만료될 날짜를 지정하여 브라우저에게 쿠키의 삭제시기를 알려주기 위해서 사용한다.
브라우저는 설정된 유효일자까지 쿠키를 유지하다가, 해당 일자가 되면 쿠키를 자동으로 삭제한다. expires 옵션을 과거로 지정하면 쿠키는 삭제된다.

쿠키의 유효일자는 반드시 GMT 포맷으로 설정해야한다. 다음은 유효기간이 하루인 쿠키를 만드는 예시이다.

//rememberme라는 쿠키에 값 1을 저장하고, 현재시간으로부터 1시간동안 유효
res.cookie('rememberme', '1', { expires: new Date(Date.now() + 3600000) })

max-age

max-age는 expires의 대안으로, 현재 시간을 기준으로 쿠키를 유지할 기간 즉, 쿠키의 만료기간을 지정할 수 있다. 현재 설정하고자 하는 만료일시까지의 시간을 밀리세컨드로 환산한 값을 설정한다.(express가 아닌 set-cookie로 쿠키 옵션을 설정할 경우, 단위는 '초') 0이나 음수로 설정하면 쿠키는 바로 삭제된다.

res.cookie('rememberme', '1', { maxAge: 3600000 })

Cookie는 HTTP 프로토콜의 비상태성을 보완하기 위한 수단으로,
브라우저에 데이터를 저장할 때 사용합니다.
Cookie의 MaxAge 옵션은 쿠키를 얼마나 유지할 것인지 만료기간을 설정하는 옵션이며,
Expires 옵션은 언제 폐기할 것인지 삭제할 시기를 지정하는 옵션입니다.
두 옵션을 동시에 설정하면
MaxAge가 더 높은 우선 순위로 적용됩니다.
이 두 옵션 중 하나라도 설정하지 않으면,
해당 쿠키는 세션 쿠키로 간주하여 브라우저가 닫힐 때 폐기 됩니다.
따라서 쿠키를 빠르게 폐기하고 싶다면 옵션을 설정하지 않는 것이 좋고, 쿠키를 계속 사용하고 싶다면 두 옵션 중에 하나라도 설정해주는 것이 좋습니다.
이 때, 브라우저를 종료하면 삭제되는 임시 쿠키를 세션 쿠키(Session Cookie)라고 하고, 설정한 옵션만큼 사용가능한 쿠키를 영속성 쿠키(Persistent Cookie)라고 합니다.

브라우저는 max-age가 우선순위를 갖고 , expire 같은 경우 http 1.0만 지원하는 일부 오래된 브라우저에서 max-age를 읽지 못하기 때문에 사용.

0개의 댓글