Ouvrir/conserver une session HTTP ? - Java - Programmation
Marsh Posté le 12-10-2004 à 18:11:20
autant pour moi, tu veux faire l'inverse, i.e te connecter par HTTP sur un server et ensuite maintenir ton identite ?
Marsh Posté le 12-10-2004 à 18:27:38
Gonzoide a écrit : J'aimerais utiliser Java pour interagir sur un forum genre HFR ... je connais rien a la maniere dont les sessions sont gerees (en general) pour ce genre de truc : imaginons que je me connecte a l'url d'identification pour envoyer mon user/password, j'imagine que le maintien de mon identite se passe soit par cookie, soit par une session cote server ? Y'a d'autres moyens ? |
ce qu'on appelle "session" sur le web(et ds d'autres cas d'ailleurs) n'est en aucun cas maintenu par le client, mais par le serveur. tout ce que le client fait c'est envoyer son identifiant de session à chaque requete. le serveur fait un "mapping" entre cet id et un "objet session" dans son coin. le client passe en son id, dans le cas du web, soit par un cookie, soit par un parametre de la requete (get ou post selon les cas)
Marsh Posté le 12-10-2004 à 18:34:26
en fait si la session est maintenue par une cookie, c est facile de propager la session car le cookie sera dans les header HTTP de la reponse.
dans le cas d'une session par parametre, c est plus dur, car tu dois interpreter tous les liens du document et en extirper la valeur.
une librairie a utiliser pour ce genre de chose est commons http client (qui vient justement de sortir en version 2.0) http://jakarta.apache.org/commons/httpclient/
Marsh Posté le 12-10-2004 à 21:56:26
julienv a écrit : en fait si la session est maintenue par une cookie, c est facile de propager la session car le cookie sera dans les header HTTP de la reponse. |
, merci, je vais voir ca
Marsh Posté le 12-10-2004 à 21:58:03
julienv a écrit : autant pour moi, tu veux faire l'inverse, i.e te connecter par HTTP sur un server et ensuite maintenir ton identite ? |
tout a fait ... je suis en train de regarder HttpURLConnection , mais je suis pas convaincu ...
Marsh Posté le 13-10-2004 à 20:58:48
the real moins moins a écrit : le serveur fait un "mapping" entre cet id et un "objet session" dans son coin. le client passe en son id, dans le cas du web, soit par un cookie, soit par un parametre de la requete (get ou post selon les cas) |
Et une fois que le client a passé son id, le serveur cherche un objet session avec cet id, c'est bien ça ?
J'ai vu qu'avec les servlets, les sessions sont automatiquement géré par le conteneur, et on peut avoir les informations :
request.getRequestedSessionId () |
, et
request.getSession () |
, c'est ce qui correspond à l'id et l'objet session ? Dans ce cas là comment on s'est entre 2 requetes a la servlet que c'est toujours le même client puisqu'apparement à chaque requete on a toujours un id et un objet session ? Le serveur doit mémoriser les id des clients qui se sont deja identifiés et regarder a chaque requete si l'id est bien enregistré ? A moins que quand un client s'identifie, le serveur met un attribut à l'objet session pour dire qu'il est identifié ? J'ai peur de refaire des tests qui ne sont pas necessaire et j'aimerais bien comprendre...
Marsh Posté le 13-10-2004 à 21:16:46
patachou a écrit : Le serveur doit mémoriser les id des clients qui se sont deja identifiés et regarder a chaque requete si l'id est bien enregistré ? |
oui... c'est une bete Map<id,session>
Marsh Posté le 13-10-2004 à 21:30:01
Gonzoide a écrit : tout a fait ... je suis en train de regarder HttpURLConnection , mais je suis pas convaincu ... |
et pouquoi ?
http://opensvn.csie.org/jcoincoin/ [...] oyeur.java
Code :
|
(j'arrête pas de poster mon code ici en fait, tout le monde va bien pouvoir voir que je code comme un porc avec google)
Marsh Posté le 13-10-2004 à 21:49:35
the real moins moins a écrit : oui... c'est une bete Map<id,session> |
Ok merci, je voulais juste savoir pour pas refaire des trucs qui étaient déjà fait .
Marsh Posté le 13-10-2004 à 21:50:57
mais tu es du coté client toi, t'as pas à "faire" quoi que ce soit si ce n'est passer ton session_id... renvoyer le cookie que le serveur t'auras envoyé quoi
Marsh Posté le 04-02-2005 à 00:14:41
J'ai une question sur l'identification sur un serveur protégé par un fichier .htaccess. J'aimerais savoir comment je pourrais m'identifier pour accèder à la page.
Normalement on peut mettre dans l'url le user et le pass comme par exemple : http://patachou:mdp@localhost/index.php
Malheuresement quand je passe ca comme argument à URL () j'ai une erreur 401 en reponse du serveur :
Code :
|
Marsh Posté le 04-02-2005 à 10:17:27
passer le mot de passe dans l'url est une facilité gérée par le navigateur, c'est pas la façon de passer le login mot de passe.
Il faut que tu utilises le systeme d'autentification HTTP.
http://www.javaworld.com/javaworld [...] tip47.html
http://www.javaworld.com/javaworld [...] tip46.html
sinon, tu peux aussi utiliser des API pour faire ton client HTTP : http://jakarta.apache.org/commons/ [...] ation.html
Marsh Posté le 04-02-2005 à 19:03:43
Merci pour tous les liens benou, ca va grandement m'avancer
Marsh Posté le 12-10-2004 à 17:59:52
J'aimerais utiliser Java pour interagir sur un forum genre HFR ... je connais rien a la maniere dont les sessions sont gerees (en general) pour ce genre de truc : imaginons que je me connecte a l'url d'identification pour envoyer mon user/password, j'imagine que le maintien de mon identite se passe soit par cookie, soit par une session cote server ? Y'a d'autres moyens ?
Si c'est par des cookies, j'imagine qu'il y a moyen de s'en tirer facilement. Mais si c'est par une session, comment ca se passe pour "maintenir" la session d'une requete HTTP a la suivante, en Java ? Avec un sessionId ? En creant un HttpURLConnection et en tapant uniquement dedans ?
PS : c'est des questions d'ordre general, pas lie a un forum en particulier mais j'imagine qu'il n'y a pas 500 manieres de faire
Message édité par Gonzoide le 12-10-2004 à 18:02:29