항해99/항해99 storage

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

crab. 2023. 5. 16. 11:30

글의 목적

면접을 대비하여 글로 정리한다.

레퍼런스

Cookie의 MaxAge, Expires 옵션

[인증/보안] Cookie 옵션

본문

Session cookies

  • 웹브라우저가 켜져있는 동안 유효하고 끄고 다시 켜면 없어짐 → MaxAge와 Expires 옵션 중 하나라도 설정하지 않을 때

Permanent cookie

  • 웹브라우저를 껐다 켜도 유지됨

Permanent cookie 기간 설정할 때 쓰이는 옵션이 바로 MaxAge와 Expires 이다.

MaxAge와 Expires 옵션은 둘 다 쿠키의 수명을 결정하는 데 사용된다.


MaxAge

  • 쿠키가 유지되는 시간(초)을 정의한다. 이 값은 현재 시간에서 더해져서 쿠키의 만료 시간이 계산된다.
  • 예를 들어, MaxAge가 3600으로 설정되어 있으면, 쿠키는 1시간 동안 유지된다.

Expires

  • 쿠키가 만료되는 날짜와 시간을 정의한다. 이 값은 HTTP Date 형식의 문자열로 설정된다.

MaxAge와 Expires 옵션 중 하나라도 설정하지 않으면?

만약 MaxAge와 Expires 옵션 중 하나라도 설정하지 않으면, 쿠키는 브라우저가 종료될 때까지 유지된다.

이를 **'Session Cookie'**라고 한다.

즉, 쿠키가 브라우저 세션 중에만 유지되고, 브라우저가 종료되면 쿠키가 자동으로 삭제된다.

하지만 MaxAge와 Expires를 함께 설정하면, 쿠키는 세션 종료 후에도 유지된다.

브라우저가 종료되더라도 쿠키가 삭제되지 않고, MaxAge 또는 Expires에 지정된 시간이 지나면 삭제된다.

또한, MaxAge와 Expires를 함께 설정한 경우에는 MaxAge가 우선된다.

MaxAge와 Expires가 동시에 설정되어 있으면, MaxAge를 우선으로 적용하여 쿠키의 수명을 결정한다.

대사로 정리

" Cookie는 HTTP 프로토콜의 비상태성을 보완하기 위한 수단으로,

브라우저에 데이터를 저장할 때 사용합니다.

Cookie의 MaxAge 옵션은 쿠키를 얼마나 유지할 것인지,

Expires 옵션은 언제 폐기할 것인지 지정하는 옵션입니다.

두 옵션을 동시에 설정하면

MaxAge가 더 높은 우선 순위로 적용됩니다.

이 두 옵션중 하나라도 설정하지 않으면,

해당 쿠키는 브라우저가 닫힐 때 폐기 됩니다.

따라서 쿠키를 빠르게 폐기하고 싶다면 옵션을 설정하지 않는 것이 좋고, 쿠키를 계속 사용하고 싶다면 두 옵션 중에 하나라도 설정해주는 것이 좋습니다.

이 때, 브라우저를 종료하면 삭제되는 임시 쿠키를 세션 쿠키(Session Cookie)라고 하고, 설정한 옵션만큼 사용가능한 쿠키를 영속성 쿠키(Persistent Cookie)라고 합니다."