OVH Cloud OVH Cloud

www::curl::easy

7 réponses
Avatar
rom1
Bonjour,

je souhaiterais faire une navigation sur un site avec un maintient de
session (apr=E8e une authentification http) ... est-ce que www::curl
permet de faire cette navigation en conservant sa session ?

Quelqu'un l'a-t-il d=E9j=E0 fait ?

Merci.
rom1

7 réponses

Avatar
Jacques Caron
Salut,

On 4 Aug 2005 00:18:56 -0700, rom1 wrote:

je souhaiterais faire une navigation sur un site avec un maintient de
session (aprèe une authentification http) ...


Une vraie authentification HTTP (à la .htaccess côté serveur), ou un
remplissage de formulaire suivie d'une gestion par cookies?

est-ce que www::curl
permet de faire cette navigation en conservant sa session ?


Dans le premier cas, oui, il suffit de préciser le username et le password
dans tous les appels à curl. Dans le deuxième cas aussi, il suffit
d'activer la gestion des cookies.

Quelqu'un l'a-t-il déjà fait ?


Oui, très souvent.

Jacques.

Avatar
rom1
Oui, c'est une vrai authentifcation HTTP de type basic (pour accéder
au site en ligne de commande c'est : #>curl --basic -u user:password
url).

Le problème avec la méthode que vous m'indiquez c'est qu'il n'y a pas
vraiment maintien de session, il y a initialisation d'une nouvelle
session à chaque appel de page ... or sur le site que je souhaites
consulter, à chaque initialisation de session le site redirige
automatiquement vers la home page après authentification, et donc les
pages à l'intérieur de l'arborescence ne sont pas accessibles .. je
dois pouvoir simuler une navigation avec mantien de session pour
accèder aux autres page de l'arborescence.

Pour simuler cette navigation, je pense qu'il faut renseigner le header
de ma requête http avec un id de session, récupéré lors de la
première connexion j'imagine ... non ?
Avez-vous déjà procédé à une opération de ce genre?

Merci.
Avatar
Patrick Mevzek
Pour simuler cette navigation, je pense qu'il faut renseigner le header
de ma requête http avec un id de session, récupéré lors de la
première connexion j'imagine ... non ?
Avez-vous déjà procédé à une opération de ce genre?


Utilisez WWW::Mechanize, cela gère tout cela...

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>

Avatar
rom1
Merci,

ca semble convenir effectivement. Cam'évitera de réinventer la roue
en construisanr des header vec www::curl
Avatar
Jacques Caron
Salut,

On 4 Aug 2005 02:10:34 -0700, rom1 wrote:

Le problème avec la méthode que vous m'indiquez c'est qu'il n'y a pas
vraiment maintien de session, il y a initialisation d'une nouvelle
session à chaque appel de page ...


Il n'y a pas de notion de session en authentification HTTP. La seule
notion de session en HTTP est introduite par les Cookies. Il suffit donc
d'activer la gestion de ceux-ci dans curl ou WWW::Curl::Easy.

Jacques.

Avatar
rom1
Je vais être un peu hors-sujet sur cette liste désolé ...

Qu'elle est le concept (et mechanisme) qui fait que tu n'as pas besoin
de de réauthentifier à chaque page d'un site (avec authentification
de type basic) mais seulement sur la première, puisqu'il n'y a pas de
notion de session en authentification http ?
Avatar
Jacques Caron
Salut,

<HS>

On 5 Aug 2005 01:23:28 -0700, rom1 wrote:

Qu'elle est le concept (et mechanisme) qui fait que tu n'as pas besoin
de de réauthentifier à chaque page d'un site (avec authentification
de type basic) mais seulement sur la première, puisqu'il n'y a pas de
notion de session en authentification http ?


Le client (navigateur web) renvoie les mêmes identifiants pour toute
connexion sur le même serveur à une "profondeur" égale ou supérieure à
celle de la requête initiale (même avant qu'on lui demande):

From RFC2617, section 2:

A client SHOULD assume that all paths at or deeper than the depth of
the last symbolic element in the path field of the Request-URI also
are within the protection space specified by the Basic realm value of
the current challenge. A client MAY preemptively send the
corresponding Authorization header with requests for resources in
that space without receipt of another challenge from the server.

</HS>

Jacques.