Aller au contenu principal

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.

astuce

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 :

  1. Requête HTTP : Lorsque vous entrez une URL dans votre navigateur, une requête HTTP est envoyée au serveur Web.
  2. Serveur Web : Le serveur Web reçoit la requête et traite la demande.
  3. Réponse HTTP : Le serveur Web envoie une réponse HTTP contenant le contenu demandé (par exemple, une page HTML, une image, etc.).
  4. 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.

remarque

Notez qu'il est également possible d'utiliser la commande wget pour des tâches similaires.

Utilisation de curl

https://curl.se/

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>
Résultat

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


Quel est le rôle principal du HTTP ?


Quelle méthode HTTP est utilisée pour récupérer des données depuis le serveur ?


Quel code de statut HTTP indique que la requête a réussi ?


Quelle méthode HTTP est utilisée pour envoyer des données au serveur ?


Quelle commande peut être utilisé pour transférer des données depuis un serveur HTTP ?


Quelle méthode HTTP est utilisée pour mettre à jour des données sur le serveur ?


Quel code de statut HTTP indique que la ressource demandée n'a pas été trouvée ?


Quelle méthode HTTP est utilisée pour supprimer des données sur le serveur ?


Quel code de statut HTTP indique une erreur interne du serveur ?



TP pour réfléchir et résoudre des problèmes

Consignes du TP

  1. Mémoriser l'adresse IP de votre machine Windows :

    • Notez l'adresse IP de votre machine Windows.
  2. 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.
  3. 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)
  4. Configurer le Serveur HTTP pour servir une page Web simple :

    • Configurez Apache pour servir une page Web simple.
  5. 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.

Une solution

1. Mémoriser l'adresse IP de votre machine Windows

  1. Ouvrir l'invite de commande :

    • Appuyez sur Win + R, tapez cmd et appuyez sur Entrée.
  2. 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

  1. Ouvrir un navigateur Web :

    • Lancez votre navigateur Web préféré.
  2. 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

  1. Installer Docker Desktop :

  2. 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
  3. Accéder au conteneur :

    • Entrez dans le conteneur pour configurer Apache :
    docker exec -it apache /bin/bash
  4. 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

  1. Ouvrir un navigateur Web :

    • Lancez votre navigateur Web préféré.
  2. Accéder à http://<votre_ip>:8080 :

    • Tapez l'URL suivante dans la barre d'adresse :
    http://<votre_ip>:8080
  3. 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".