[Résolu] Les sessions inter-serveur ? Ca marche ? - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu] Les sessions inter-serveur ? Ca marche ? (/showthread.php?tid=6791) |
[Résolu] Les sessions inter-serveur ? Ca marche ? - xviniette - 29-04-2013 Salut à tous ! Aujourd'hui je me pose une petite question et après quelques recherches je n'ai pas trouvé la réponse. Peut être que la question est trop bête pour être posé, je ne sais pas iffle:. Pour illustrer ma question je vais essayer de l'expliquer avec un exemple. Nous avons donc deux serveurs distincts. Le serveur 1 : - s1.com/setsession.php?sessvalue=varX : initialise $_SESSION['test'] = $_GET['sessvalue'] - s1.com/getsession.php : echo $_SESSION['test'] Le serveur 2 : - s2.com/setsessionsurS1.php?sessvalue=varX : appelle s1.com/setsession.php?sessvalue=$_GET['sessvalue'] - s2.com/getsessionsurS1.php récupère la valeur retourné par s1.com/getsession.php J'ai un peu du mal à comprendre comment fonctionnent les sessions. Du coup ma question. Si on appelle le s2 pour définir une valeur de session sur s1, et qu'ensuite on appelle s2 pour récupérer la valeur de s1. Est-ce que ça nous retournera le résultat ? Si non : Pourquoi ? Si oui : La session est elle liée au serveur 2 (càd que tous les clients qui utiliseront le s2 travailleront avec la même variable de session) ? Ou la session est elle définit pour chaque client distinct ? J'espère être assez clair :p. En vous remerciant. RE: Les sessions inter-serveur ? Ca marche ? - srm - 29-04-2013 La session est lié au serveur. RE: Les sessions inter-serveur ? Ca marche ? - xviniette - 29-04-2013 Très bien merci ! Ca m'arrange bien du coup ! RE: [Résolu] Les sessions inter-serveur ? Ca marche ? - niahoo - 30-04-2013 pour préciser oxman, la session est stockée sur le serveur donc forcément un autre serveur ne peut pas en avoir connaissance, à moins que les serveurs communiquent entre eux ou stockent les sessions sur une même base de données par exemple. RE: [Résolu] Les sessions inter-serveur ? Ca marche ? - xviniette - 30-04-2013 Tu n'as pas très bien compris ce que je demandais je crois. C'est ma faute, je ne dois pas être assez explicite. Du coup je me demande si Oxman a répondu en ayant clairement à ma question. Ce que je demande n'est pas de savoir si les serveurs se partagent les sessions, mais si le serveur 1 gère une session lorsque que l'on utilise un deuxième serveur pour accéder à ce serveur 1. Et si oui, si la session sera spécifique au serveur 2 ou à tous les clients qui utiliseront le serveur2. Mais je pense qu'Oxman a bien répondu à la bonne question. En plus ça m'arrange :bave: Merci pour ta participation. RE: [Résolu] Les sessions inter-serveur ? Ca marche ? - Xenos - 30-04-2013 Je préciserai quand même (parce que je suis pas certain d'avoir compris ta question...):
Le 2) implique que le n° de session est lancé au client: on ne sait pas forcément si le client le rattappe, et le n° peut très bien être intercepté. Le 3) implique que toute requête d'un client se voit joindre le n° de session connu du client, donc c'est le client HTTP qui dit au serveur quel n° de session utiliser (et le serveur vérifie, normalement, que ce n° de session existe*). Donc, si s2 redirige le client C vers s1:
Autre cas de figure, si s2 récupère les données de s1 est les renvoie à C (donc, s2 est un genre de proxy):
Dans le 1er cas, C est le client de s1 suite à la redirection, et la session sur s1 sera celle de C. Dans le 2nd cas, C est le client de s2 qui est le client de s1, et la session sur s1 sera celle de s2 (s1 ignore totalement C). *: Dans PHP, si la session n'existe pas, il me semble que le serveur la créera, ce qui veut dire que si le client définit un cookie avec un numéro manuel, le serveur créera une session avec ce numéro-ci, ce qui peut être problématique si le n° envoyé par le client est incorrect, ou utilise des caractères interdits (à confirmer). Donc, dans l'exemple donné:
Pour répondre à la question, il faudrait donc savoir si "s2 appelle s1" signifie "C est redirigé vers S1" ou "S2 appelle, dans son code PHP, un truc de S1". Dans le 1er cas, la session vue par S1 sera celle de C, dans le 2nd cas, la session vue par s1 sera celle de s2 (identique pour tous les clients de s2 donc). RE: [Résolu] Les sessions inter-serveur ? Ca marche ? - xviniette - 30-04-2013 Merci pour cette réponse bien expliqué. La question que je me pose est pour Citation :"S2 appelle, dans son code PHP, un truc de S1".où S2 fonctionne "comme un proxy". J'en retiens donc la réponse qu'avait donné Oxman et que tu as confirmé. Merci beaucoup ! RE: [Résolu] Les sessions inter-serveur ? Ca marche ? - niahoo - 30-04-2013 oui en gros ton serveur est un simple client. |