WebServices - TP2
From JayblancWiki
TP2 : Le protocole HTTP
Utilisation de curl et de siege
sudo apt-get install curl siege
Utiliser curl et siege pour effectuer une requête http sur votre serveur local apache ainsi que sur votre serveur d'application glassfish.
Question 1 : Quelle différences pouvez vous observer ?
Utiliser curl pour forcer une requête utilisant le protocole HTTP version 1.0.
Question 2 : Quelles options avez vous utilisé ? Quelles sont les différences que vous pouvez constater?
(Un manuel des commandes linux est disponible en appelant man curl, man siege, etc...)
Utilisation de tcpdump et wireshark.
sudo apt-get install tcpdump wireshark
Utiliser tcpdump pour effectuer une capture des échanges lors d'une navigation sur votre page locale.
Question 3 : Sur quelle interface faut-il écouter le trafic ?
Question 4 : Quelles sont les options à utiliser pour voir le contenu des paquet en hexa et en ASCII ?
Utiliser wireshark pour effectuer une capture du même type et observer les paquets.
Question 5 : Quel est le type de réponse que le serveur renvoie à firefox ? Pourquoi ?
Question 6 : Comment faire pour avoir un code de retour standard (200) ?
Installer le plugin firefox : firebug
Utiliser le plugin et trouver comment voir les requêtes et réponses qui sont envoyée.
Question 7 : Faites une capture d'écran d'une séquence de requête sur une page web de votre serveur et une sur une page web de votre choix (www.google.fr). Expliquez les différences.
Ecriture d'un script CGI
Configurer apache pour l'exécution de script CGI. Par défaut il n'y a rien à configurer, il faut simplement trouver où placer son script CGI pour qu'il soit exécuté par le serveur.
Placer le script CGI du cours dans un fichier script1.cgi et consulter la page http://localhost/cgi-bin/script1.cgi
Question 8 : Modifiez le code du script cgi pour afficher l'heure système.
Configuration de apache pour PHP
sudo apt-get install libapache2-mod-php5
L'installation de l'interpréteur php vous permet d'écrire des pages php dans votre serveur apache.
Ecrire une page php qui remplace votre page d'accueil et qui affiche les informations sur l'interpréteur php.
Configurer Apache pour utiliser l'authentification HTTP
Créer un dossier /private dans votre répertoire www
Créer un fichier .htaccess
AuthType Basic
AuthName " Accès Restreint
AuthUserFile /var/www/private/users
Require valid-user
Créer le fichier contenant les users
sudo htpasswd -c users <username>
Modifier la configuration du site par défaut pour autoriser la modification de la configuration dans des fichiers .htaccess
AllowOverride None → AllowOverride All
Recharger Apache
sudo apache2ctl restart
Avec firefox accéder à l'URL http://localhost/private
Capturer les requêtes avec wireshark ou firebug.
Question 9 : Quel est le nom de l'entête qui contient votre login/password ? Est-il en clair ou non ?
Essayer de décoder le contenu de cet entête en utilisant le décodeur du site http://www.motobit.com/util/base64-decoder-encoder.asp
Configurer Apache pour utiliser SSL (HTTPS)
La documentation à consulter : http://doc.ubuntu-fr.org/tutoriel/securiser_apache2_avec_ssl
Accéder à l'url https://localhost
Avec wireshark et firebug capturez les trames d'un accès à https://localhost/private
Question 10 : Est-il possible de voir les données d'authentification ? Quelle est la différence entre firebug et wireshark ?
Ecriture d'une page JSP dans netbeans
Dans netbean créer un nouveau projet de type WebApplication.
Donner lui le nom testjsp
Notez que par défaut, le context de déploiement dans glassfish aura le même nom que votre projet.
Ajouter la ligne suivante dans la page par défaut de votre projet sous le hello world :
<% out.print(new java.util.Date()) ; %>
Déployez votre application.
Question 11 : Sur quelle URL devez vous consulter la page que vous venez d'écrire ? Expliquer les différents éléments qui constitue l'URL et à quoi ils correspondent dans votre cas.