Cookie의 MaxAge, Expires 옵션에 대해서
2023. 4. 4. 12:58ㆍ웹개발 메모장
728x90
SMALL
쿠키는 브라우저에 저장되는 작은 크기의 문자열로, RFC 6265 명세에서 정의한 HTTP 프로토콜의 일부입니다.
쿠키는 주로 웹 서버에 의해 만들어집니다. 서버가 HTTP 응답 헤더(header)의 Set-Cookie에 내용을 넣어 전달하면, 브라우저는 이 내용을 자체적으로 브라우저에 저장합니다. 이게 바로 쿠키입니다. 브라우저는 사용자가 쿠키를 생성하도록 한 동일 서버(사이트)에 접속할 때마다 쿠키의 내용을 Cookie 요청 헤더에 넣어서 함께 전달합니다.
쿠키는 클라이언트 식별과 같은 인증에 가장 많이 쓰입니다.
- 사용자가 로그인하면 서버는 HTTP 응답 헤더의 Set-Cookie에 담긴 “세션 식별자(session identifier)” 정보를 사용해 쿠키를 설정합니다.
- 사용자가 동일 도메인에 접속하려고 하면 브라우저는 HTTP Cookie 헤더에 인증 정보가 담긴 고윳값(세션 식별자)을 함께 실어 서버에 요청을 보냅니다.
- 서버는 브라우저가 보낸 요청 헤더의 세션 식별자를 읽어 사용자를 식별합니다.
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 |