제공된 데이터에서 세션 기간을 결정하는 것은 다소 어려울 수 있습니다. 자세한 내용을 살펴보며 답을 찾아보겠습니다.
PHP에서 세션은 가비지 컬렉터(GC)에 의해 관리됩니다. session.gc_maxlifetime 매개변수는 세션 데이터가 마지막으로 변경된 이후 제거 대상으로 표시되기 전까지의 최대 시간을 지정합니다. 하지만 반전이 있습니다. session_start가 호출될 때마다 GC가 호출되지는 않습니다.
session.gc_probability 및 session.gc_divisor 매개변수는 session_start 호출 중에 GC가 트리거될 확률을 결정합니다. 기본적으로 이러한 값은 각각 1과 100입니다. 이는 해당 호출의 약 1%에서만 GC가 실행된다는 의미입니다.
GC가 그렇지 않다는 사실 항상 호출된다는 것은 세션의 수명이 기술적으로 만료된 경우에도(예: session.gc_maxlifetime 초 전에 세션 데이터가 변경된 경우) 여전히 더 오랜 기간 동안 사용할 수 있음을 의미합니다.
이러한 동작으로 인해 일반적으로 PHP의 GC에만 의존하기보다는 자체 세션 시간 초과 메커니즘을 구현하는 것이 좋습니다. 이렇게 하면 미리 정해진 시간 내에 세션이 종료되도록 할 수 있습니다.
위 내용은 PHP 세션은 실제로 얼마나 오래 지속되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!