쿠키는 기본적으로 브라우저 세션이 종료되면 함께 사라집니다. 하지만 쿠키에 만료 날짜(expiration date)를 직접 저장하면 현재 브라우저 세션이 끝난 후에도 쿠키의 수명을 연장할 수 있습니다.
이를 위해서는 쿠키 문자열에 expires 속성을 추가하고, 원하는 날짜와 시간을 값으로 지정하면 됩니다. 만료 날짜가 지나기 전까지는 브라우저가 해당 쿠키를 계속 유지합니다.
예제 코드
아래 예제는 쿠키의 만료 날짜를 현재 시점으로부터 1개월 후로 설정하는 방법을 보여줍니다. 사용자가 이름을 입력하고 버튼을 클릭하면 쿠키가 생성됩니다.
<html>
<head>
<script>
<!--
function WriteCookie() {
var now = new Date();
now.setMonth( now.getMonth() + 1 );
cookievalue = escape(document.myform.customer.value) + ";"
document.cookie="name=" + cookievalue;
document.cookie = "expires=" + now.toUTCString() + ";"
document.write ("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>
</head>
<body>
<form name="myform" action="">
Enter name: <input type="text" name="customer"/>
<input type="button" value="Set Cookie" onclick="WriteCookie()"/>
</form>
</body>
</html>코드 설명
new Date()로 현재 날짜 객체를 생성한 뒤,setMonth(now.getMonth() + 1)를 통해 한 달 뒤의 날짜를 계산합니다.escape()함수는 입력값에 포함된 특수문자를 인코딩하여 쿠키 값으로 안전하게 저장되도록 합니다.document.cookie에name=값형태로 쿠키를 저장하고, 이어서expires=날짜형식으로 만료 날짜를 지정합니다.toUTCString()메서드는 날짜를 쿠키 표준 형식인 UTC 문자열로 변환해 줍니다.
이렇게 설정된 쿠키는 브라우저를 닫아도 삭제되지 않으며, 지정한 만료 날짜가 도래할 때까지 유효합니다. 참고로 최신 방식에서는 max-age 속성(초 단위)을 사용하는 것도 가능합니다.