dans JEE, Serveur, Tomcat

la notion de session dans une application

Dans ce post je souhaite clarifier un peu la notion de session dans une application.

Nous verrons ce qu’est une session et les problématiques qui tentent d’être résolues à travers cette notion  puis enfin les différentes manières de l’implémenter.

Rappel:

Pour bien comprendre la notion de session, nous devons poser d’abord quelques éléments de base.

La notion de session existe afin de palier le fait que  http est un protocole stateless.

Http est le protocole de communication du www (web) tous les échanges entres 2 machines sur internet se font via Http.

Du point de vue de la machine serveur, chaque requête est vue comme une nouvelle requête. il n’y a donc aucun lien entre les différentes requêtes issues du client.

En d’autres termes entre 2 requêtes, http ne garde aucune information concernant le client.

Pourquoi ce la pose t’il problème ?

Dans l’absolu aucun problème, pour certains sites ce fonctionnement conviendra parfaitement.

Pour d’autres ce sera beaucoup plus ennuyant.

  • Les sites nécessitant une authentification.
  • Les sites d’E-commerce lors du processus d’achat.
  • Les sites avec questionnaires interactifs.
  • Tous les sites avec lesquels l’utilisateur peut interagir

Pour tous ces sites sans gestion de session le serveur demanderait  sans arrêt à l’utilisateur de s’authentifier à chaque requête, ou encore de resélectionner tous son panier ou toutes ses réponses.

On pourrait qualifier ce type de serveur d’amnésique, oubliant systématiquement toutes informations une fois qu’il traite une requête.

Eh bah c’est exactement cela le http sans la notion de session, c’est comme si mon serveur était amnésique.

Vous imaginer une conversation avec une personne amnésique qui après chaque phrase que vous formulez vous demande :  » qui vous êtes ?  » .

C’est le genre de conversation qui devient rapidement agaçant pour le client 🙂

Pour palier à cette amnésie de http, il a fallu trouver des solutions afin de conserver les informations échangées lors d’une longue conversation entre le client et le serveur

Longue conversation : Achat, questionnaire, Inscription …

Le concept de session était né!.

Autrement dit : une session va nous permettre de conserver les informations échangées entre un client et un serveur durant une conversation.

Vous remarquerez que le vocabulaire utilisé ici est très proche du vocabulaire humain.

Maintenant que nous savons ce qu’est une session et à quoi elle sert.

Essayons de voir ensemble comment peut on implémenter une session

Il existe plusieurs façon d’implémenter le concept de session parmi les plus connues :

  • hidden input field
  • url rewriting
  • Cookies
  • Api java

Nous verrons dans un prochain article comment fonctionne chacune de ces techniques.

Ecrire un Commentaire

Commenter

Webmentions

  • clindamicina crema vaginal

    […] clindamicina crema vaginal[…]

    clindamicina crema vaginal