Maison  >  Article  >  développement back-end  >  Comment le collecteur de déchets de session PHP affecte-t-il la durée de vie de la session ?

Comment le collecteur de déchets de session PHP affecte-t-il la durée de vie de la session ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-08 08:52:02265parcourir

How Does PHP's Session Garbage Collector Affect Session Lifespan?

Détermination de la durée de vie d'une session

Question :

Comment pouvez-vous déterminer la durée d'une session en fonction de la configuration PHP suivante paramètres ?

session.auto_start  Off Off
session.bug_compat_42   Off Off
session.bug_compat_warn On  On
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path /   /
session.cookie_secure   Off Off
session.entropy_file    no value    no value
session.entropy_length  0   0
session.gc_divisor  1000    1000
session.gc_maxlifetime  1440    1440
session.gc_probability  1   1
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   /var/lib/php/session    /var/lib/php/session
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    Off Off
session.use_trans_sid   0   0

Réponse :

Bien que le paramètre session.gc_maxlifetime spécifie la durée de vie maximale des données de session depuis sa dernière modification, la gestion des sessions par PHP présente certaines complexités.

Plus précisément, le garbage collector qui supprime les données de session expirées n'est pas appelé par chaque appel session_start. Au lieu de cela, il est invoqué avec une probabilité déterminée par session.gc_probability (par défaut : 1) et session.gc_divisor (par défaut : 100). Cela signifie que même si les données de session ont théoriquement expiré, elles peuvent toujours être utilisées pendant une période plus longue.

Pour atténuer ce problème et garantir des délais d'expiration de session fiables, il est recommandé de mettre en œuvre un mécanisme d'expiration de session personnalisé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn