Dans l’interaction homme-machine, la gestion de session est le processus de suivi de l’activité d’un utilisateur à travers les sessions d’interaction avec le système informatique.
Les tâches typiques de gestion de session dans un environnement de bureau incluent le suivi des applications ouvertes et des documents que chaque application a ouverts, afin que le même état puisse être restauré lorsque l’utilisateur se déconnecte et se connecte plus tard. Pour un site web, la gestion des sessions peut consister à demander à l’utilisateur de se reconnecter si la session a expiré (c’est-à-dire si un certain délai s’est écoulé sans activité de l’utilisateur). Elle est également utilisée pour stocker des informations côté serveur entre les requêtes HTTP.
Gestion de session de bureauEdit
Un gestionnaire de session de bureau est un programme qui peut enregistrer et restaurer les sessions de bureau. Une session de bureau est l’ensemble des fenêtres en cours d’exécution et leur contenu actuel. La gestion des sessions sur les systèmes basés sur Linux est assurée par le gestionnaire de session X. Sur les systèmes Microsoft Windows, la gestion de session est fournie par le sous-système de gestion de session (smss.exe) ; la fonctionnalité de session utilisateur peut être étendue par des applications tierces comme twinsplay.
La gestion de session est particulièrement utile dans un navigateur web où un utilisateur peut enregistrer toutes les pages ouvertes et les paramètres et les restaurer à une date ultérieure ou sur un ordinateur différent (voir portabilité des données).
Pour aider à récupérer d’un crash du système ou de l’application, les pages et les paramètres peuvent également être restaurés lors de la prochaine exécution. Google Chrome, Mozilla Firefox, Internet Explorer, OmniWeb et Opera sont des exemples de navigateurs web qui prennent en charge la gestion des sessions. La gestion des sessions est souvent gérée par l’application de cookies.
Gestion des sessions du serveur webEdit
Le protocole de transfert hypertexte (HTTP) est sans état : un ordinateur client exécutant un navigateur web doit établir une nouvelle connexion réseau TCP (Transmission Control Protocol) avec le serveur web à chaque nouvelle requête HTTP GET ou POST. Le serveur web ne peut donc pas compter sur une connexion réseau TCP établie pour une durée supérieure à une seule opération HTTP GET ou POST. La gestion de session est la technique utilisée par le développeur web pour que le protocole HTTP sans état supporte l’état de session. Par exemple, une fois qu’un utilisateur a été authentifié auprès du serveur Web, la prochaine demande HTTP de l’utilisateur (GET ou POST) ne doit pas amener le serveur Web à demander à nouveau le compte et le mot de passe de l’utilisateur. Pour une discussion des méthodes utilisées pour accomplir ceci, voir le cookie HTTP et l’ID de session
Dans les situations où plusieurs serveurs web doivent partager la connaissance de l’état de session (comme c’est typique dans un environnement de cluster), les informations de session doivent être partagées entre les nœuds de cluster qui exécutent le logiciel de serveur web. Les méthodes pour partager l’état de session entre les nœuds d’une grappe comprennent : la multidiffusion des informations de session aux nœuds membres (voir JGroups pour un exemple de cette technique), le partage des informations de session avec un nœud partenaire en utilisant une mémoire partagée distribuée ou une virtualisation de la mémoire, le partage des informations de session entre les nœuds en utilisant des sockets de réseau, le stockage des informations de session sur un système de fichiers partagé tel qu’un système de fichiers distribué ou un système de fichiers global, ou le stockage des informations de session en dehors de la grappe dans une base de données.
Si les informations de session sont considérées comme des données transitoires et volatiles qui ne sont pas nécessaires pour la non-répudiation des transactions et ne contiennent pas de données soumises à un audit de conformité (aux États-Unis par exemple, voir la loi sur la portabilité et la responsabilité des assurances santé et la loi Sarbanes-Oxley pour des exemples de deux lois qui nécessitent un audit de conformité), alors toute méthode de stockage des informations de session peut être utilisée. Toutefois, si les informations de session sont soumises à une conformité d’audit, il convient de prendre en considération la méthode utilisée pour le stockage, la réplication et la mise en grappe des sessions.
Dans une architecture orientée service, les messages SOAP (Simple Object Access Protocol) ou SOAP construits avec des messages XML (Extensible Markup Language) peuvent être utilisés par les applications grand public pour amener les serveurs web à créer des sessions.
Gestion de session sur SMSEdit
De même que HTTP est un protocole sans état, le SMS l’est aussi. Lorsque le SMS est devenu interopérable sur les réseaux rivaux en 1999, et que la messagerie texte a commencé son ascension vers une forme de communication mondiale omniprésente, diverses entreprises se sont intéressées à l’utilisation du canal SMS à des fins commerciales. Les premiers services ne nécessitaient pas de gestion de session puisqu’il s’agissait de communications unidirectionnelles (par exemple, en 2000, le premier service d’information mobile a été fourni par SMS en Finlande). Aujourd’hui, ces applications sont désignées par le terme de messagerie d’application à poste (A2P), par opposition à la messagerie de poste à poste (P2P). Le développement d’applications d’entreprise interactives a nécessité la gestion de sessions, mais comme le SMS est un protocole sans état tel que défini par les normes GSM, les premières mises en œuvre étaient contrôlées côté client en demandant aux utilisateurs finaux de saisir manuellement les commandes et les identifiants de service.