Bonjour,
Sur un système embarqué, j'ai un serveur Web qui permet de récupérer l'état du produit et de le configurer.
Les fichiers .htm, .css et .js ne contiennent que du code statique ce qui permet au navigateur Web de les garder en cache (permet un chargement rapide des pages).
Seuls les fichiers .json contiennent des données dynamiques qui sont générées à la volée.
J'ai des donc des fichiers .htm qui utilisent des scripts .js qui exécutent régulièrement des requêtes AJAX pour récupérer l'état du produit et ainsi rafraichir automatiquement la page Web (toutes les secondes).
La récupération de l'état du produit se fait via des requêtes HTTP GET vers des fichiers .json et la configuration du produit via des requêtes HTTP POST vers ces mêmes fichiers .json.
Actuellement, le timeout de mes sessions HTTP est réinitialisé à chaque fois que mon serveur Web embarqué reçoit une requête HTTP vers un fichier (.htm, .css, .js, .json) existant.
=> Donc si un utilisateur oubli de fermer son navigateur web, la session n'expire jamais.
=> Lorsqu'il expiration de session (où qu'il n'y a pas de session ouverte... cas arrivant lorsque l'on redémarre le produit) vers un fichier .json, le serveur renvoit un HTTP redirect vers le fichier "/sessionIsClosed.json", ce qui permet au script .js de détecter qu'il n'y a plus/pas de session ouverte et donc de donner l'ordre au navigateur Web de charger la page "/login.htm". Pour tous les autres types de fichiers, en cas de session non ouverte, le serveur renvoit un HTTP redirect vers le fichier "/login.htm".
Je pourrai désactiver la réinitialisation du timeout de mes sessions HTTP pour les requêtes HTTP GET sur fichiers .json mais ça implique que l'utilisateur ne pourra plus scruter l'état du produit pendant de longues périodes, ce qui peut être utile si on veut afficher un graphique qui se rafraichit automatiquement à chaque requête AJAX (étant sur un système embarqué avec une taille de RAM limité, il n'est pas possible d'enregistrer les données des graphiques dans la RAM du produit : il faut qu'elles soient enregistrées dans le cache du navigateur Web).
A votre avis qu'elle est la meilleure méthode à utiliser, sachant que le produit contient des informations dites sensibles ? Quelles sont les pratiques utilisées pour ce genre d’application et avec quelle valeur de timeout de sessions ?
Merci d'avance
Partager