Interaction client-serveur
Introduction
- Qu'est-ce serveur Web ?
- Qu'est-ce qu'une requête ?
- Qu'est-ce que le protocole HTTP ?
Mise en place d'un serveur
- Dans le dossier www (voir explorateur de fichier) modifier index.html en y mettant le contenu suivant :
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Mon serveur</title>
</head>
<body>
<p> Vous venez de mettre en place un serveur</p>
</body>
</html>
- Tapez dans la barre d'adresse d'un navigateur : localhost.
Explication du "localhost"
"localhost" indique que le serveur et le client se trouvent sur la même machine (on parle de machine locale).
Normalement, la barre d'adresse devrait être renseignée avec l'adresse du serveur Web : https://framasoft.org/fr/
Comment interagissent le client et le serveur ?
-
le client (le navigateur Web) envoie une requête HTTP vers un serveur Web
-
le serveur fabrique une page HTML avec les informations écrites en PHP, en Python, Java, JavaScript...
-
le serveur Web envoie la page nouvellement créée au client
-
le client recoit la page HTML et l'affiche dans le navigateur Web
Découverte du PHP
- Supprimer le fichier index.html
- Créer le fichier index.php avec pour contenu :
<?php
$heure = date("H:i:s");
echo '<h1>Bienvenue sur mon site</h1>
<p>Il est '.$heure.'</p>';
?>
- Tapez dans la barre d'adresse : localhost.
Au moment de la requête (c'est à dire l'instant où vous avez appuyé sur entrée) , le serveur a exécuté le programme contenu dans index.php , la page HTML a été générée et envoyée au client (c'est à dire le navigateur).
Avec le navigateur, visualisez le code source contenant la réponse du serveur.
Que constatez-vous ?
...
Le code source envoyé par le client au serveur (index.php) est différent du code source envoyé par le serveur au client. (Relire la phrase deux fois !)
Application : Création d'un formulaire
Méthode GET
- Créer un fichier index.html contenant le code :
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Le formulaire</title>
</head>
<body>
<form action="formulaire.php" method="get">
<label>Identifiant</label> : <input type="text" name="identifiant" />
<label>Mot de passe </label> : <input type="password" name="mdp" />
<input type="submit" value="Envoyer" />
</form>
</body>
- Créer un fichier formulaire.php contenant le code :
<?php
$id=$_GET['identifiant'];
$mdp=$_GET['mdp'];
echo "<p> Bonjour ".$id.". Nous vous rappelons votre mot de passe : ".$mdp.". </p>";
?>
- Tapez localhost dans la barre d'adresse d'un navigateur et tester le formulaire.
localhost déclenche une requête vers le serveur qui fabrique la page html puis l'envoie au client. Cette page est alors affichée dans le navigateur.
"Envoyer" déclenche une nouvelle requête HTTP vers le serveur : les informations saisies dans le formulaire sont envoyées vers le serveur par la méthode GET.
Le serveur fabrique une nouvelle page et que les informations saisies dans le formulaire sont envoyées vers le serveur par la méthode POST.
- Après avoir envoyer le formulaire, recopier le contenu de la barre d'adresse.
- Modifier l'url, on mettant petit à la place du prénom et poisson à la place du nom puis valider.
- Quel est l'inconvénient de la méthode GET?
Google maps
La méthode GET est utilisée par google maps.
L'adresse : https://www.google.fr/maps/@50.4880672,2.8555391,17z permet d'afficher la carte du lieu de coordonnées GPS :
Latitude : 50.4880672
Longitude :2.8555391
zoom : 17
- Modifier le zoom ( par exemple 12).
- Mettre en place un formulaire avec 3 champs (Latitude, longitude et zoom ) et un bouton (Envoyer) qui génère un lien vers la carte du lieu souhaité.
La méthode POST
- Dans le fichier index.html remplacer method="get" par method="post".
- Dans le fichier formulaire.php remplacer $_GET par $_POST.
- Après avoir compléter et envoyer le formulaire, recopier le contenu de la barre d'adresse.
- Quel est la différence par rapport à la méthode GET?
BILAN sur la différence entre la méthode POST et la méthode GET :
...
... à vous ...
...
Voir les requete en direct