Etude d'un service : HTTP
Notions théoriques
Le service HTTP (HyperText Transfer Protocol) est le protocole de communication utilisé pour transférer des pages Web sur le réseau.
Il permet la communication entre un navigateur Web (client) et un serveur Web.
Par exemple, lorsque vous tapez www.example.com dans votre navigateur, une requête HTTP est envoyée au serveur Web de example.com, qui renvoie la page Web demandée.
Dans quelle couche du modèle TCP/IP se situe le service HTTP ?
Dans le modèle OSI, comme dans le modèle TCP/IP, un service se situe dans la couche application.
Quelle est la différence entre le service HTTP et le service HTTPS ?
Le service HTTPS ajoute une couche de sécurité, au service HTTP, en utilisant SSL/TLS pour chiffrer les données échangées, ce qui assure la confidentialité et l'intégrité des informations.
HTTPS est donc préférable pour protéger les informations sensibles lors de la navigation sur Internet.
Fonctionnement du HTTP
Le HTTP fonctionne sur un modèle client-serveur. Voici les principales étapes du fonctionnement du HTTP :
- Requête HTTP : Lorsque vous entrez une URL dans votre navigateur, une requête HTTP est envoyée au serveur Web.
- Serveur Web : Le serveur Web reçoit la requête et traite la demande.
- Réponse HTTP : Le serveur Web envoie une réponse HTTP contenant le contenu demandé (par exemple, une page HTML, une image, etc.).
- Affichage : Le navigateur interprète la réponse et affiche le contenu à l'utilisateur.
Méthodes HTTP
Voici les méthodes HTTP les plus courantes :
- GET : Récupère des données depuis le serveur (par exemple, une page Web).
- POST : Envoie des données au serveur (par exemple, un formulaire).
- PUT : Met à jour des données sur le serveur.
- DELETE : Supprime des données sur le serveur.
- HEAD : Récupère les en-têtes de réponse sans le corps du message.
- OPTIONS : Demande les méthodes HTTP prises en charge par le serveur.
Codes de statut HTTP
Les codes de statut HTTP indiquent le résultat de la requête HTTP.
Voici quelques exemples de codes de statut HTTP :
- 200 OK : La requête a réussi.
- 301 Moved Permanently : La ressource demandée a été déplacée de façon permanente.
- 404 Not Found : La ressource demandée n'a pas été trouvée.
- 500 Internal Server Error : Une erreur interne du serveur s'est produite.
Exemple pratique
Voyons comment utiliser la commande curl
pour effectuer des requêtes HTTP.
Notez qu'il est également possible d'utiliser la commande wget
pour des tâches similaires.
Utilisation de curl
La commande
curl
permet de transférer des données depuis ou vers un serveur en utilisant différents protocoles, y compris HTTP.
La commande curl
peut être utilisée pour effectuer une requête HTTP GET
.
curl http://www.example.com
Sortie attendue :
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
</head>
<body>
<div>
<h1>Example Domain</h1>
...
</div>
</body>
</html>
La commande curl http://www.example.com
récupère le contenu de la page Web www.example.com et l'affiche dans le terminal.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Consignes du TP
-
Mémoriser l'adresse IP de votre machine Windows :
- Notez l'adresse IP de votre machine Windows.
-
Vérifier que le serveur HTTP n'est pas accessible sur le port 8080 de votre machine Windows :
- Utilisez un navigateur Web pour accéder à
http://<votre_ip>:8080
et vérifiez que le serveur n'est pas accessible.
- Utilisez un navigateur Web pour accéder à
-
Installer un serveur HTTP sur un conteneur Linux via Docker Desktop sous Windows :
- Installez Docker Desktop sur votre machine Windows si ce n'est pas déjà fait.
- Lancez un conteneur Linux avec Apache installé (
https://hub.docker.com/_/httpd
)
-
Configurer le Serveur HTTP pour servir une page Web simple :
- Configurez Apache pour servir une page Web simple.
-
Accéder au site Web via l'adresse IP de la machine Windows suivie du numéro de port 8080 :
- Utilisez un navigateur Web pour accéder à
http://<votre_ip>:8080
et vérifiez que le site Web est accessible.
- Utilisez un navigateur Web pour accéder à
Une solution
1. Mémoriser l'adresse IP de votre machine Windows
-
Ouvrir l'invite de commande :
- Appuyez sur
Win + R
, tapezcmd
et appuyez surEntrée
.
- Appuyez sur
-
Utiliser
ipconfig
pour trouver l'adresse IP :- Tapez la commande suivante pour trouver l'adresse IP de votre machine :
ipconfig
Notez l'adresse IP de votre adaptateur réseau (par exemple,
172.16.136.130
).
2. Vérifier que le serveur HTTP n'est pas accessible sur le port 8080 de votre machine Windows
-
Ouvrir un navigateur Web :
- Lancez votre navigateur Web préféré.
-
Accéder à
http://<votre_ip>:8080
:- Tapez l'URL suivante dans la barre d'adresse :
http://<votre_ip>:8080
Vous devriez obtenir une erreur indiquant que le site n'est pas accessible.
3. Installer un serveur HTTP sur un conteneur Linux via Docker Desktop sous Windows
-
Installer Docker Desktop :
- Téléchargez et installez Docker Desktop depuis le site officiel de Docker.
-
Lancer un conteneur Linux avec Apache :
- Ouvrez PowerShell ou l'invite de commande et exécutez la commande suivante pour lancer un conteneur avec Apache :
docker run -d --name apache -p 8080:80 httpd
-
Accéder au conteneur :
- Entrez dans le conteneur pour configurer Apache :
docker exec -it apache /bin/bash
-
Configurer le serveur HTTP pour servir une page Web simple :
- Créez un fichier HTML simple pour servir comme page d'accueil.
echo "<html><body><h1>Bienvenue sur mon serveur Apache</h1></body></html>" > /usr/local/apache2/htdocs/index.html
4. Accéder au site Web via l'adresse IP de la machine Windows suivie du numéro de port 8080
-
Ouvrir un navigateur Web :
- Lancez votre navigateur Web préféré.
-
Accéder à
http://<votre_ip>:8080
:- Tapez l'URL suivante dans la barre d'adresse :
http://<votre_ip>:8080
-
Vérifier l'affichage de la page Web :
- Vous devriez voir la page Web que vous avez configurée précédemment avec le message "Bienvenue sur mon serveur Apache".