Bases des technologies web
Trois serveurs d'application sont placés derrière un répartiteur de charge, qui leur distribue les requêtes à tour de rôle (round robin). Les informations de session d'un utilisateur connecté sont conservées uniquement dans la mémoire du serveur qui a traité la connexion. Quelle combinaison d'un problème probable et de sa contre-mesure est appropriée ?
- ASi une requête est envoyée à un autre serveur, la session est introuvable et l'utilisateur semble déconnecté. On place les sessions dans un stockage partagé utilisable par tous les serveurs
- BLes trois serveurs émettent chacun de leur côté le même identifiant de session, ce qui crée des collisions. On utilise des identifiants de session courts et séquentiels pour que les utilisateurs puissent les retenir
- CLe répartiteur de charge ne peut pas lire les cookies, si bien que HTTPS devient inutilisable. On cesse de chiffrer les communications entre le répartiteur de charge et les serveurs
Afficher la réponse et l'explication
Réponse : A. Si une requête est envoyée à un autre serveur, la session est introuvable et l'utilisateur semble déconnecté. On place les sessions dans un stockage partagé utilisable par tous les serveurs
Si les informations de session n'existent que dans la mémoire d'un seul serveur, le serveur qui reçoit la requête suivante ne peut pas identifier l'utilisateur lorsque cette requête lui est distribuée. Une contre-mesure consiste à conserver les sessions dans un stockage partagé que tous les serveurs peuvent lire et écrire (un magasin de données en mémoire ou une base de données). Une autre est la persistance de session (sessions « collantes », sticky sessions), qui continue d'envoyer les requêtes d'un même utilisateur au même serveur ; mais les sessions sont perdues si ce serveur s'arrête, et la charge tend aussi à se déséquilibrer. Des serveurs sans état permettent d'ajouter ou de retirer facilement des serveurs.
Continuer : 9 autres questions sur Bases des technologies web