Le but de ce rapport est de présenter le projet Internet réalisé
à l'Essi dans le cadre du cours "Internet : Techniques et Solutions".
Ci-dessous le plan de ce rapport :
Le but du logiciel est de représenter l'arborescence d'un site Web sous forme graphique. Pour un site donné il doit donc :
L'ensemble des fonctionnalités peut être partionné en trois classes :
3.1 - Arborescence d'un site Web
Nous sommes inspiré du modèle "Windows Explorer" pour présenter l'arborescence d'un site. Comme cela peut être vu sur l'image de l'interface les noeuds de l'arborescence (pages HTML) sont affichés sur le panneau de gauche tandis que les feuilles ou encore le contenu d'une page( images, fichiers à telécharger, adresse e-mail ...), sont affichées sur le panneau de droite. (Pour sélectionner une page il suffit de cliquer une fois dessus avec le bouton numero1 de la souris, tandis qu'en cliquant avec le bouton numéro 2 un pop-menu est affiché). Sur le panneau de gauche le nom d'une page est affiché en gris si la page a déjà été explorée par l'utilisateur dans un autre noeud (selectionner cette page repositionne l'utilisateur sur le noeud correspondant) en noir dans les autres cas.
Open Server : cree et affiche la carte d'un site
Web (correspondant à l'URL saisie) en utilisant un robot
pour rapatrier le site ( chaque page du site est rappatriée grâce
à une requête Http puis analysée pour déterminer
les URL de l'ensemble de ses liens : les pages ne sont pas stockées
sur le host local) .
Stop
: permet d'interrompre la construction de la cartographie d'une
site Web.
Open Map : permet d'ouvrir
un fichier correspondant à une carte(arborescence d'un site).
SaveMap : permet de sauver l'arborescence
d'un site.
SaveTree : permet de rapatrier l'arborescence
accessible a partir d'une page. Cette operation presente un legere contrainte
: seules les pages qui se trouvent physiquement dans le sous repertoire
de la page selectionnee sont rapatriees ( les liens vers un repertoire
frere ou pere ne sont pas pris en compte, ceci permet de pas rapatrier
des pages exterieures au site)
( pour réaliser cette opération il faut au prélable
sélectionner le noeud racine dans le panneau de gauche puis selectionner
l'item "Save Tree" du popup menu ).
Expand : permet d'eclater
tous les noeuds d'une arborescence au cas ou l'utilisateur
voudrait visualiser l'intégralité de l'arborescence
du site.
Collapse : opération
contraire à expand .
3.2 - Opérations sur une page HTML
Une fois selectionnée, il est possible de réaliser
des opérations sur une page en utilisant le popup menu.
( Ces fonctionnalites n'ont pas ete etendues aux feuilles par manque
de temps).
Save Page
: permet de rappatrier une page (panneau de gauche) ou une feuille
(panneau de droite).
Get Information : permet d'obtenir des informations
sur une page; la collecte d'informations ne se fait pas lors de la création
de la carte car il faudrait stocker ces informations pour chacune des pages
: ceci serait couteux compte tenu d'une part du des volumes moyens
des sites, et d'autre part que seul un certain nombre de pages interessent
un utilisateur. Cette opération est realisée en utilisant
la requête Http HEAD : la reponse renvoyée par
le serveur est analysée pour extraite les headers Http les plus
interessant . Les informations selectionnees sont :
3.3 - Configuration du logiciel
L'ensemble de ces opérations est accessible par le sous-menu
Configuration du menu Options.
Profondeur de l'exploration : permet de choisir
la profondeur de l'arborescence lors de la construction d'une carte.
Lorqu'un utilisateur explore un site, il est probable qu'il redemande
des informations sur une même page à plusieurs reprises (
soit parce qu'il a oublié de mémoriser ces informatios, soit
parce qu'il compare des pages au coup par coup ...).
Afin d'optimiser la collecte d'information , un systeme de
cache a été implémenté : si le cache est actif
les informations demandées sur toute page seront gardées
par le logiciel même si l'utilisateur referme la fenêtre contenant
les informations (ceci evitera une nouvelle connection sur le serveur).
Les opérations disponibles sur le cache sont:
Enable Cache
Disable Cache
Clear Cache
La version du protocole Http utilisée pour réaliser
la collecte d'information peut etre choisie par l'utilisateur :
http1.0 pour être compatible avec de vieux serveurs ou
http1.1.
L'un de nos objectifs était de modifier le robot afin que
les requêtes faites par ce dernier pour construire la carte puissent
être réalisées avec la version 1.1 (plus efficace grâce
au pipelining et aux connections persistantes) cependant le temps était
insuffisant.
SetProtocol
Le logiciel a été réalisé en java (jdk1.1.5)
en utilisant la librairie graphique swing (swing-1.0.1).
Afin de rapatrier la topologie d'un site nous avons cherché
un robot développé en java : Spider
Une fois le code de ce robot étudié, nous l'avons
modifié pour pouvoir