Projet Internet de Patrice BRUNEL et Frederic DEVESA
Projet No 2 : un validateur d'URL performant
LE SUJET
Ce projet consiste à écrire un outil pouvant
valider des URL et renvoyer un code de retour
en fonction des résultats (url ne répond pas, document déplacé,
document ok mais demande d'authentification etc...).
Il faudra prévoir de pouvoir le configurer de manière
aussi souple que possible (timeout, niveaux de récursivité
type de sortie pour les résultats, etc...). Je souhaiterai également pouvoir exécuter ce validateur au travers d'une page web (entrez l'URL à valider et cliquez sur le bouton ok). Si le projet marche bien
on peut également envisager de le faire évoluer en proposant
de parser une page html pour valider les liens et les emails qu'elle contient,
et ce pourquoi pas en parallèle (vérificateur multithread).
LES SPECIFICATIONS
Le programme recevra une URL et des paramètres, et renverra un status et le
message correspondant pour chaque URL.
Paramètres
URL images Oui/Non (tag IMG SRC="...")
niveau de recursivité : 0..n
type de retour : interactif/fichier(mail)
Recursivité
On pourra demander de vérifier les liens contenus dans une page HTML, puis
ceux contenus dans les pages visées etc..
Nous proposons de resteindre la récursivité aux pages situées sur le même
serveur que l'URL en entrée; si une page du site X a des liens inexistants,
qu'y pouvons_nous ?
Cela éviterait également de parcourir tout le web si on fixe un niveau de
recursivité élevé !
Résultats
2 modes de retour :
interactif : affichage à l'ecran.
différé : écriture dans un fichier envoyé en mail.
Interface
Le programme peut se lancer depuis le shell ou depuis une page HTML, ce
qui simplifiera la saisie des paramètres.
Realisation
Le programme a été developpé en Perl5 en utlisant la librairie LWP du CPAN.
FONCTIONNEMENT
CheckURL vous permet de vérifier la validité d'une URL.
Il fonctionne selon 2 modes :
- Depuis le shell Unix, appeler chkurl :
exemples :
- chkurl www.essi.fr/~devesa/
- vérifie l'url et renvoie 0 ou 1
- chkurl -h
- affiche les options possibles
- chkurl -r3 -i www.essi.fr/~devesa/
- vérifie l'url en profondeur 3,
images comprises, et affiche le résultat à l'écran.
- Depuis un
écran HTML , saisir l'URL
et les paramètres proposés
Exemple de sortie écran