Maison Opération et maintenance Sécurité conception de cohérence de session

conception de cohérence de session

Jun 25, 2021 pm 06:09 PM
1

Cohérence des sessions

Qu'est-ce qu'une session

Le serveur Web peut créer automatiquement des sessions pour les utilisateurs accédant au même navigateur et fournir des fonctions de stockage. Généralement, les informations de connexion de l'utilisateur sont stockées dans la session.

Quel est le problème de cohérence de session ?

Lorsqu'il n'y a qu'un seul serveur Web dans le backend, la session correcte peut être trouvée pour chaque requête http. Le problème est qu'il ne peut pas assurer la haute disponibilité. Si un serveur raccroche, ce sera terminé. Redondance + basculement, déployez plusieurs serveurs Web et routes nginx vers différents serveurs Web. Chaque requête http est acheminée et il n'est pas garanti qu'elle soit acheminée vers le même serveur, ce qui entraîne des problèmes de cohérence.

Solutions courantes pour résoudre la cohérence des sessions

Hash cohérent

La première solution qui vient à l'esprit est de hacher en fonction de l'adresse IP du client pour garantir que la même IP tombe sur le même site Web sur le serveur. Vous pouvez également utiliser des hachages basés sur des champs métier, tels que userId et cityId, qui sont plus flexibles à utiliser. Cependant, cela détruit le principe d’unicité et rend la passerelle et l’entreprise collantes. Il n’est pas recommandé de l’utiliser sauf si cela est nécessaire. Avantages : Enregistre le cache, peut être étendu horizontalement. Inconvénients : lorsque certains services sont redémarrés, les sessions seront perdues, ce qui obligera certains utilisateurs à se reconnecter. Si le hachage est étendu horizontalement et que la session est redistribuée après le rehachage, certains utilisateurs ne pourront pas acheminer la session

synchronisation de session

Les sessions entre plusieurs serveurs Web sont synchronisées les unes avec les autres , de sorte que chaque serveur Web contient toutes les informations de session. Inconvénients : Comme il contient toutes les sessions, le nombre de clusters est limité par la mémoire et l'extension est limitée.

Stockage du client

Les informations de connexion sont enregistrées sur le client et chaque demande contient des informations sur l'utilisateur. Le serveur est complètement apatride et facile à étendre. Avantages : Aucun stockage n’est requis côté serveur. Inconvénients : chaque requête http transporte des informations sur l'utilisateur, ce qui gaspille du trafic ; il existe un risque de fuite d'informations. Les cookies ne peuvent pas stocker trop d'informations.

Stockage centralisé back-end

Le serveur Web est lié à un stockage unifié pour enregistrer les informations de session. Il est recommandé de les stocker dans le cluster Redis pour faciliter l'expansion ultérieure. Avantages : Il n'y a aucun risque de fuite d'informations ; l'expansion horizontale ne perd pas de données. Inconvénients : Une requête réseau supplémentaire est ajoutée et le code métier doit être modifié pour interroger Redis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)