session.cookie_lifetime이 23 일로 설정된 이유는 무엇입니까? [닫은]


9

Drupal의 세션 수명 session.gc_maxlifetime은 기본적으로 약 2.3 일로 설정되어 제한됩니다 .

그렇다면 session.cookie_lifetime23 일로 설정 한 용도는 무엇 입니까?

settings.php의 스 니펫은 다음과 같습니다.

/**
 * Set session lifetime (in seconds), i.e. the time from the user's last visit
 * to the active session may be deleted by the session garbage collector. When
 * a session is deleted, authenticated users are logged out, and the contents
 * of the user's $_SESSION variable is discarded.
 */
ini_set('session.gc_maxlifetime', 200000);

/**
 * Set session cookie lifetime (in seconds), i.e. the time from the session is
 * created to the cookie expires, i.e. when the browser is expected to discard
 * the cookie. The value 0 means "until the browser is closed".
 */
ini_set('session.cookie_lifetime', 2000000);

이 질문을 위해 1 session.gc_probability과 2 session.gc_divisor를 모두 설정했다고 가정하십시오 .


쿠키가 신비롭게 사라지는 것을 원하지 않기 때문에? 세션이 정상적으로 무효화되도록 거기에 있기를 원합니까? 이것이 실제 문제를 일으키고 있습니까?
Mołot

그게 다야. 그러나 쿠키가 40 시간에 만료되고 서버 세션이 51 시간에 만료되도록하는 것이 더 좋지 않을까요? 쿠키 수명은 서버 만료 시간보다 짧습니다.
user5858

이것은 대부분 의견에 근거한 것이며 PHP 작성자 만이 실제로 말할 수 있습니다. 아, 그것은 사용하기로 결정한 세션 핸들러에 달려 있습니다. 그러나 일반적으로 아니요, 쿠키 누락으로 인해 아무도 사용하지 않고 X 시간 동안 활성 상태로 사용 가능한 세션을 원하지 않습니다. 스토리지 낭비입니다. 쿠키를 더 오래 남겨두면 서버에 보관 된 세션 데이터를 사용할 수있는 사람이 거의 항상 있으므로 세션 데이터를 유지하지 않아도됩니다.
Mołot

답변:


16

ini_set ( 'session.gc_maxlifetime', 200000);

  1. 이 값은 서버용입니다.
  2. 세션 가비지 콜렉션에 대한 설정입니다.
  3. 사용자가 마지막 방문이 200000 이전에 발생한 경우이 세션은 가비지 수집 대상이됩니다.
  4. GC이므로 세션 값은 폐기 될 수 있으며 강제하지 않을 수 있습니다. 세션이 GC에 적합하게 된 후 GC 조치가 발생하면 삭제됩니다.
ini_set('session.cookie_lifetime', 2000000);
  1. 이 값은 브라우저 용입니다.

  2. 브라우저가이 쿠키를 활성화 할 수있는 최대 시간입니다.

  3. 여기서 0 값은 즉시 또는 브라우저를 닫을 때를 의미합니다.

특히 귀하의 질문에 대답하십시오.

  1. 사용자가 2.3 일 후에 서버를 다시 방문하지 않으면 세션 가비지 콜렉션이 실행될 때 세션이 삭제됩니다.
  2. 2.2 일 (2.3 일 미만)마다 서버에서 한 페이지를 계속 누르고 있으면 세션이 활성 상태로 유지됩니다. 그러나 세션이 처음 생성 된 후 23 일까지만 활성화 될 수 있습니다.
  3. 이것이 의미하는 것은 session.cookie_lifetime세션의 절대 최대 수명입니다.

1
확률 적 가비지 수집기를 참고하십시오. 자세한 내용 : stackoverflow.com/a/1270960 .
digitgopher

예를 들어 /etc/php/5.6/fpm/php.iniadjust (또는 add) 설정과 같이 서버에서 액세스 할 수 있다면 php.ini에서 훌륭한 답변을 얻을 수 있습니다 session.gc_maxlifetime = 2000000. 감사합니다.
therobyouknow
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.