Session (informatique)

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

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.

Déroulement d'une session

Une session démarre lorsque l'utilisateur commence à interagir avec un programme logiciel, qu'il s'agisse d'un système d'exploitation (OS), d'une application lourde ou à travers un site internet.

Plusieurs sessions peuvent donc être 'imbriquées' l'une dans l'autre, une session ouverte sur un site internet se faisant elle-même au sein d'une session ouverte sous l'OS.

L'ouverture de session peut être :

Selon toute logique, une session devrait se terminer lorsque l'utilisateur arrête de se servir du système. En pratique, même lorsque le système dispose d'un mécanisme d'arrêt explicite de la session (telle une déconnexion), l'utilisateur peut toujours laisser le programme 'ouvert' en cours de session pour 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 :

Exemples particuliers

Les sections suivantes présenteront 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 destinés à la construction de sites ou d'applications 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();.

Principe de fonctionnement du passage d'un identifiant de session PHP.

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 mais reste une moyenne.

Les variables de sessions sont stockées dans un tableau PHP simple appelé $_SESSION.

Voici comment définir une variable de session :

$_SESSION = $variable;

Les variables de sessions se récupèrent ainsi :

$variable = $_SESSION;

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. La valeur i représente integer (nombre) et s string (chaîne de caractères). 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

  1. « Grand dictionnaire terminologique - session »

Articles connexes

Liens externes