TP1 Applications web M1 Miage 2010-2011 : étude du protocole HTTP

De $1

Version de 06:35, 23 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Introduction

Ce TP a pour but de vous faire comprendre la nature du dialogue entre un navigateur et un serveur web. Le langage d'échange est le protocole HTTP. Il est très simple d'écrire un serveur web minimaliste, vous allez vous en rendre compte en simulant ce qu'envoie un navigateur web à un serveur à l'aide de divers outils tels que telnet ou netcat (commande "nc" de unix).

Outils nécessaires à ce TP

Si vous êtes sous Linux, vous n'avez théoriquement besoin de rien, toutes les commandes sont disponibles. Si vous êtes sous windows, vous commencerez par installer le package Cygwin, qui pertmet d'installer sur une machine Windows un shell unix ainsi qu'une grande partie des commandes disponibles sous ce système. Cygwin est non seulement une formidable boîte à outils mais il vous permettra également de vous faire la main avec les commandes Unix que vous n'avez généralement pas l'habitude d'utiliser et qui sont pourtant beaucoup plus puissantes que ce que propose l'ancêtre DOS. Ajoutons que la maîtrise des commandes Unix fait partie des prérequis pour certains stages et embauches (parlez-en aux M2 qui sont partis en stage chez Google à New-York cette année, ou aux stagiaires IBM/SAP).

Installation de cygwin sous windows :

  1. Aller sur cygwin.com, localisez le lien vers setup.exe (pour les plus fainéants : http://cygwin.com/setup.exe),
  2. Dans les packages proposés, il faut impérativement sélectionner : inetutils, nc, openssh, wget (cherchez-les et cliquer sur "skip" pour qu'ils soient installés,
  3. Terminez l'installation.
  4. Ouvrez une fenêtre cygwin (vous devriez avoir l'icône sur le bureau), et vérifiez que les commandes telent, nc, ssh, wget sont bien installées.

Utilisation de la commande telnet comme client HTTP

Vous allez envoyer des requetes entièrement écrites à la main au serveur, en d'autres termes vous allez simuler un client HTTP. Pendant cette séance vos références principales seront les RFCs du protocole HTTP:

Pour réaliser cette première étape, vous aurez besoin d'un terminal (xterm, gnome-terminal ou konsole sous Linux, cygwin sous windows). Lancez le terminal de votre choix et au prompt taper la commande :

telnet www:unice:fr 80

Le serveur vous répondra :

# telnet www.unice.fr 80
Trying 134.59.1.71...
Connected to www.unice.fr.
Escape character is '^]'.

Vous pouvez alors commencer à envoyer des requêtes au serveur, par exemple :

GET / HTTP/1.0
Accept: www/source
Accept: text/html

 Terminez en tapant deux fois sur la touche Entrée (c'est ainsi qu'on termine une requête HTTP).

Le serveur vous va vous retourner une réponse et se déconnecter. Pour envoyer d'autres commandes, vous devez vous reconnecter avec telnet. Le protocole HTTP est par défaut un protocole "non connecté", je te parle, tu réponds, fin de transmission !

Question 1 Quelles sont les caractéristiques du serveur web de l'université ?

Question 2 Quelles informations tirez-vous de la première réponse du serveur?

Question 3 Essayez la requête suivante sur portail.unice.fr :

GET /jahia/jsp/index.jsp HTTP/1.0
Accept: www/source
Accept: text/html
Host: portail.unice.fr