Cookie의 MaxAge, Expires 옵션에 대해서

2023. 4. 4. 12:58웹개발 메모장

728x90
SMALL

 

 

쿠키는 브라우저에 저장되는 작은 크기의 문자열로, RFC 6265 명세에서 정의한 HTTP 프로토콜의 일부입니다.

쿠키는 주로 웹 서버에 의해 만들어집니다. 서버가 HTTP 응답 헤더(header)의 Set-Cookie에 내용을 넣어 전달하면, 브라우저는 이 내용을 자체적으로 브라우저에 저장합니다. 이게 바로 쿠키입니다. 브라우저는 사용자가 쿠키를 생성하도록 한 동일 서버(사이트)에 접속할 때마다 쿠키의 내용을 Cookie 요청 헤더에 넣어서 함께 전달합니다.

쿠키는 클라이언트 식별과 같은 인증에 가장 많이 쓰입니다.

  1. 사용자가 로그인하면 서버는 HTTP 응답 헤더의 Set-Cookie에 담긴 “세션 식별자(session identifier)” 정보를 사용해 쿠키를 설정합니다.
  2. 사용자가 동일 도메인에 접속하려고 하면 브라우저는 HTTP Cookie 헤더에 인증 정보가 담긴 고윳값(세션 식별자)을 함께 실어 서버에 요청을 보냅니다.
  3. 서버는 브라우저가 보낸 요청 헤더의 세션 식별자를 읽어 사용자를 식별합니다.

 

 


 

 

 

expires와 max-age

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

 

Expires 속성

  • Expires 속성은 쿠키의 파기 날짜를 지정하는 속성이다.
  • Expires 속성에는 GMT 형식이나 UTC 형식으로 날짜를 입력해야 한다.
  • 파기 날짜를 입력하지 않으면 브라우저가 종료될 때 쿠키가 삭제된다.
document.cookie = "user=John; path=/; expires=Tue, 19 Jan 2038 03:14:07 GMT"

 

max-age 속성

  • expires 옵션의 대안으로, 쿠키 만료 기간을 설정할 수 있게 해준다.
  • 현재부터 설정하고자 하는 만료일시까지의 시간을 초로 환산한 값을 설정한다.
// 1시간 뒤에 쿠키가 삭제됩니다.
document.cookie = "user=John; max-age=3600";

// 만료 기간을 0으로 지정하여 쿠키를 바로 삭제함
document.cookie = "user=John; max-age=0";

 

 

expires  max-age 옵션을 설정하면 브라우저를 닫아도 쿠키가 삭제되지 않습니다.

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

브라우저는 설정된 유효 일자까지 쿠키를 유지하다가, 해당 일자가 도달하면 쿠키를 자동으로 삭제합니다.

 

 

728x90
LIST

'웹개발 메모장' 카테고리의 다른 글

React의 state와 props  (0) 2023.04.05
순수함수(pure function)  (0) 2023.04.05
useRef는 언제 사용할까  (0) 2023.04.04
const 키워드에 대해  (0) 2023.04.03
require와 import차이점  (0) 2023.04.03