Die Bestimmung der Dauer einer Sitzung anhand der bereitgestellten Daten kann eine kleine Herausforderung sein. Schauen wir uns die Details an, um die Antwort zu finden.
In PHP werden Sitzungen von einem Garbage Collector (GC) verwaltet. Der Parameter session.gc_maxlifetime gibt die maximale Zeitspanne seit der letzten Änderung der Sitzungsdaten an, bevor diese zum Entfernen markiert wird. Es gibt jedoch eine Wendung: Der GC wird nicht jedes Mal aufgerufen, wenn session_start aufgerufen wird.
Die Parameter session.gc_probability und session.gc_divisor bestimmen die Wahrscheinlichkeit, dass der GC während eines session_start-Aufrufs ausgelöst wird. Standardmäßig sind diese Werte 1 bzw. 100, was bedeutet, dass der GC nur bei etwa 1 % dieser Aufrufe ausgeführt wird.
Die Tatsache, dass der GC nicht ausgeführt wird Immer aufgerufen bedeutet, dass, auch wenn die Lebensdauer einer Sitzung technisch abgelaufen ist (d. h. die Sitzungsdaten wurden vor Sekunden über session.gc_maxlifetime geändert), sie noch für einen längeren Zeitraum verwendet werden kann.
Aufgrund dieses Verhaltens ist es im Allgemeinen ratsam, einen eigenen Sitzungs-Timeout-Mechanismus zu implementieren, anstatt sich ausschließlich auf PHPs GC zu verlassen. Dadurch kann sichergestellt werden, dass Sitzungen innerhalb eines vorgegebenen Zeitraums beendet werden.
Das obige ist der detaillierte Inhalt vonWie lange dauern PHP-Sitzungen tatsächlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!