Le protocole HTTP est sans état. Les sessions sont un moyen de préserver l’état du client lors de requêtes HTTP. Vous pouvez choisir de le faire avec la gestion de session intégrée d'une plateforme ou de le faire vous-même avec des paramètres de chaîne de requête. Dans tous les cas, un concept de session est nécessaire pour de nombreuses tâches.
Votre collègue n'aime probablement pas une implémentation spécifique, ou n'a pas utilisé de sessions pour les objectifs prévus. Si vous devez conserver des informations sur une connexion client spécifique via des requêtes HTTP, vous avez besoin d'une forme de persistance de session.
Les problèmes suivants sont spécifiques à l'implémentation:
Nature non typée des variables de session
Portée globale des variables de session
Équilibrage de la charge des serveurs perdant des sessions
Redémarrage des pools d'applications / serveurs
Par exemple, je travaille le plus souvent en PHP et stocke les informations de ma session dans une base de données relationnelle. Donc, mes variables de session sont tapées. L'équilibrage de la charge et les redémarrages du serveur ne posent aucun problème de session.
Celui-ci est plus intéressant:
Expiration de session entraînant une perte d'état
Les sessions sont le plus souvent conservées via des cookies. Ceux-ci peuvent être supprimés par le client à tout moment. Mais ils peuvent également être préservés via un paramètre de chaîne de requête et par conséquent, ne jamais expirer sur le client. Le délai d'attente du serveur est à vous. Donc, même ce problème est spécifique à la mise en œuvre.
Ne rejetons pas tout le concept de sessions simplement parce que nous n'aimons pas une implémentation particulière. Tout bon cadre d’application Web facilitera l’utilisation des sessions afin de préserver les connexions des utilisateurs ou de conserver tout ce qui est spécifique à la visite en cours de l’utilisateur. Les enregistrements de base de données d’un utilisateur peuvent (et devraient) être utilisés pour stocker des éléments qui lui sont spécifiques lorsqu’ils sont connectés. Cependant, les visiteurs anonymes peuvent avoir des informations temporaires à conserver dans leur session, telles que la liste succincte des pages visitées récemment ou la préférence donnée à. cacher un avis qu'ils ont déjà vu. Généralement, seules des informations temporaires plus petites sont appropriées pour le stockage de session.
using things like query string parameters instead
- Dans ce cas, utilisez toujours toujours les paramètres de la chaîne de requête, si possible. L'utilisation de session pour ce type de paramètre est fragile et peut introduire des bugs étranges lorsque les utilisateurs ont plusieurs onglets ouverts.