절대 만료되지 않는 쿠키를 설정하고 싶습니다. 가능할까요?
document.cookie = "name=value; expires=date; path=path;domain=domain; secure";
날짜를 정말로 크게 만들고 싶지 않습니다. 쿠키에 만료 매개 변수에 대한 값이 만료되지 않았는지 여부가 궁금합니다.
감사.
절대 만료되지 않는 쿠키를 설정하고 싶습니다. 가능할까요?
document.cookie = "name=value; expires=date; path=path;domain=domain; secure";
날짜를 정말로 크게 만들고 싶지 않습니다. 쿠키에 만료 매개 변수에 대한 값이 만료되지 않았는지 여부가 궁금합니다.
감사.
답변:
아니. 할 수 없습니다. 그렇게하는 '길'은 단지 만료 날짜를 2030 년과 같게 만드는 것입니다.
원하는 것에 대한 구문이 없습니다. 만료를 설정하지 않으면 세션이 끝날 때 쿠키가 만료됩니다. 유일한 옵션은 임의로 큰 값을 선택하는 것입니다. 일부 브라우저는 2038 년이 지난 날짜에 문제가 있음을 유의하십시오 (유닉스 시대 시간이 32 비트 정수를 초과하는 경우).
Mozilla 문서 에서 예제로 할 수 있습니다 .
document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT";
추신
물론 인류가 여전히 10000 년의 첫 1 분 동안 코드를 사용한다면 문제가있을 것입니다 :)
모든 쿠키는 쿠키 사양에 따라 만료되며 설정할 수있는 최대 값은
2^31 - 1 = 2147483647 = 2038-01-19 04:14:07
최대 쿠키 수명은
$.cookie('subscripted_24', true, { expires: 2147483647 });
document.cookie = 'subscripted_24=true; expires=' + new Date(2147483647 * 1000).toUTCString();
한 달 또는 그 밖의 만료 날짜에 쿠키를 설정 한 다음 사용자가 웹 사이트를 다시 방문 할 때마다 쿠키를 다시 할당 할 수 있습니다
당신은 단지 할 수 없습니다 . 영원한 쿠키를 설정하는 데 사용할 정확한 코드는 없지만 오래된 트릭은 다음과 같습니다 current time + 10 years
.
January 2038
쿠키 ( 32 비트 int )에 대한 날짜가 지나면 날짜 가 즉시 삭제됩니다. 가까운 장래에 고쳐질 기적을 기원합니다. 들어 64 비트 INT , 년의 주위에 2110
안전합니다. 시간이 지남에 따라 소프트웨어와 하드웨어는 변할 것이며, 오래된 것들 (현재 우리가 가지고있는 것들)에는 결코 적응하지 못할 것이므로 미래를 위해 지금 준비하십시오 .
2038 년 문제 참조
클라이언트 측에서만 데이터를 읽으려는 경우 로컬 스토리지를 사용할 수 있습니다. 브라우저 캐시가 지워진 경우에만 삭제됩니다.
쿠키를 다음과 같이 현재 연도보다 하나 더한 날짜로 설정하여 쿠키를 끝내지 않을 수 있습니다.
var d = new Date();
document.cookie = "username=John Doe; expires=Thu, 18 Dec " + (d.getFullYear() + 1) + " 12:00:00 UTC";