- Session (informatique)
-
En informatique et en télécommunication, une session est une période délimitée pendant laquelle un appareil informatique est en communication et réalise des opérations au service d'un client - un usager, un logiciel ou un autre appareil[1].
Sommaire
Déroulement d'une session
Une session démarre lorsque l'utilisateur commence à interagir avec un programme.
L'ouverture de session peut être :
- Explicite, avec une saisie d'un nom et d'un mot de passe. On parle alors d'authentification ou de connexion. Cette authentification peut toutefois être automatisée, lorsqu'un mécanisme particulier remplace l'utilisateur en indiquant par exemple à sa place ses informations de connexion. C'est le cas par exemple lorsque l'on démarre une sous-session (on peut bénéficier de l'authentification principale).
- Implicite, lorsqu'il n'y a pas besoin d'indiquer un identifiant ou un mot de passe. Ce type de session est bien souvent limitée en termes de droits et donc d'effets.
Selon toute logique, une session devrait se terminer lorsque l'utilisateur arrête de se servir du système. En pratique, hormis les cas où l'on a une demande volontaire d'arrêt de la session (telle une déconnexion), l'utilisateur peut toujours laisser le programme en cours de session et revenir par la suite. Cela n'est pas sans poser des problèmes, notamment en matière de sécurité. Le concepteur du programme peut alors imposer un temps limite d'inactivité ou une échéance : passé un certain temps, soit la session est terminée, soit elle exige à nouveau l'entrée du mot de passe.
Informations de sessions
Les informations de session sont conservées dans un profil de l'utilisateur (en général, un ensemble de variables). Elles peuvent être fugaces ou stockées à moyen/long terme dans un ensemble de fichiers, d'entrées dans une base de données, etc. Elles sont soit chargées à l'ouverture de session, et mises à jour à la fin, soit dynamiquement pendant les interactions.
Certaines informations sensibles de la session doivent être isolées et/ou protégées par des droits d'accès, tandis que d'autres peuvent être partagées par plusieurs profils.
Utilisation des sessions
L'informatique fait souvent appel à la notion de session :
- Dans les systèmes d'exploitation multi-utilisateurs. Elles permettent à chacun de travailler indépendamment des autres dans des processus distincts, avec ses propres variables d'environnement, et des droits différents.
- Dans les protocoles réseaux, on peut citer l'exemple des sessions HTTP qui permettent de réaliser des applications web au-dessus du protocole HTTP. À la première visite d'une page, un serveur web demande au client de conserver un cookie de session, qui contient un simple identifiant. Lorsque l'utilisateur passe sur une autre page du site, le cookie est envoyé au serveur web en même temps que la requête HTTP : le serveur web peut alors retrouver la session d'un utilisateur grâce à l'identifiant stocké dans le cookie.
Exemples particuliers
Les sections suivante présenterons des cas particuliers de gestion de session afin de donner un aperçu des utilisations possibles. Sachant que la problématique des sessions est aujourd'hui dominée par les applications offertes sur les réseaux et notamment les applications Web passant par les navigateurs, les exemples sont donc liés à des langages dédiées à la construction de site ou d'application Web.
Sessions en script PHP
Les sessions sont indispensables dès qu'un site comporte une partie membres. Elles permettent de garder en mémoire sur le serveur chaque personne, identifiée ou non, visitant le site. Les fonctions de sessions doivent toujours être appelées avant l'écriture de code HTML. Ainsi, la première chose conseillée à faire sur chaque page PHP est : session_start();
Les variables de sessions sont appelées variables superglobales, car elles sont toujours là, même si la page est rechargée par le serveur. Les sessions ont un temps de vie défini par le serveur. Ce temps varie généralement entre 5 et 30 minutes.
Les variables de sessions sont stockées dans un tableau PHP simple appelé
$_SESSION[]
.Voici comment définir une variable de session :
$_SESSION['id'] = $variable;
Les variables de sessions se récupèrent ainsi :
$variable = $_SESSION['id'];
Voici une méthode sûre afin de détruire une session en cas de déconnexion (manuelle ou forcée) :
$_SESSION = array(); //Écrase les variables de sessions en recréant un tableau vide session_destroy(); //Supprime le fichier serveur de la session
Les fichiers de sessions sauvegardés sur le serveur ont ce format :
> Nom du fichier > sess_fe089db4fa4f15978286da2432db9ab3 > Contenu > id|i:1;name|s:6:"Didjor";
Regardons de plus près ce qui définit une variable de session :
> Name|Type:Char_nb:Value;
Name
- Nom de la variable superglobale
Type
- Type de données. i représente integer et s string
Char_nb
- Nombre de caractères de la variable
Value
- Valeur de la variable. Elle est entre guillemets si son type est String
Notes et références
Articles connexes
Liens externes
Catégorie :- Terminologie de l'informatique
Wikimedia Foundation. 2010.