Chapitre 6 : Le Protocole HTTP - Travaux Pratiques

TP 1 : Exploration avec les DevTools

Objectifs

Étapes

1.1 Ouvrir les DevTools

  1. Ouvrez Chrome ou Firefox
  2. Appuyez sur F12 ou Ctrl+Shift+I
  3. Allez dans l'onglet Network (Réseau)

1.2 Observer une requête simple

  1. Cochez "Preserve log" pour garder l'historique
  2. Naviguez vers https://httpbin.org/get
  3. Cliquez sur la requête dans la liste

Questions :

1.3 Tester différentes méthodes

Utilisez l'onglet Console pour envoyer des requêtes :

1.4 Observer les codes de statut

Testez ces URLs et notez les codes :

Exercice

Remplissez le tableau :

URL Méthode Code Content-Type
httpbin.org/get
httpbin.org/post
httpbin.org/status/201

TP 2 : Maîtrise de cURL

Objectifs

Prérequis

Exercices

2.1 Requête GET simple

Question : Quelle est la différence entre -i et -v ?

2.2 Requête POST avec données

2.3 Headers personnalisés

2.4 Suivre les redirections

2.5 Télécharger un fichier

Exercice avancé

Écrivez une commande cURL qui :

  1. Envoie une requête POST à https://httpbin.org/post
  2. Avec le header Content-Type: application/json
  3. Avec le header X-Custom-Header: MonHeader
  4. Avec le body {"action": "test", "value": 42}
  5. Affiche les headers de réponse

TP 3 : API REST avec JavaScript

Objectifs

Étapes

3.1 GET basique

3.2 POST - Créer une ressource

3.3 PUT - Modifier une ressource

3.4 DELETE - Supprimer une ressource

Exercice pratique

Créez une fonction fetchWithRetry(url, options, maxRetries) qui :

  1. Effectue une requête HTTP
  2. En cas d'erreur 5xx, réessaie jusqu'à maxRetries fois
  3. Attend 1 seconde entre chaque tentative
  4. Retourne la réponse ou lève une erreur

TP 4 : Analyse des Headers de Sécurité

Objectifs

Étapes

4.1 Vérifier les headers d'un site

4.2 Analyser avec Security Headers

  1. Allez sur https://securityheaders.com
  2. Entrez l'URL d'un site (ex: github.com)
  3. Analysez le rapport

Headers à vérifier

Header But Valeur recommandée
Strict-Transport-Security Forcer HTTPS max-age=31536000; includeSubDomains
X-Frame-Options Anti-clickjacking DENY ou SAMEORIGIN
X-Content-Type-Options Anti-MIME sniffing nosniff
Content-Security-Policy Sources autorisées default-src 'self'
Referrer-Policy Contrôle du referrer strict-origin-when-cross-origin

Exercice

Analysez 3 sites de votre choix et remplissez le tableau :

Site HSTS X-Frame CSP Note
github.com
google.com
(votre choix)

TP 5 : Cache HTTP

Objectifs

Étapes

5.1 Observer le cache

5.2 Requête conditionnelle

5.3 Simulation de cache dans le navigateur

  1. Ouvrez DevTools > Network
  2. Chargez une page avec des images
  3. Rechargez (F5) et observez "(from cache)"
  4. Rechargez avec Ctrl+Shift+R (ignorer le cache)

Exercice

Créez une page HTML avec :

Configurez les headers de cache appropriés pour chaque type de fichier.

Exercices Récapitulatifs

Exercice 1 : Client HTTP minimaliste

Créez un script JavaScript qui :

  1. Affiche un formulaire avec URL, méthode, body
  2. Envoie la requête
  3. Affiche le statut, headers et corps de la réponse

Exercice 2 : Questions théoriques

  1. Quelle est la différence entre no-cache et no-store ?
  2. Pourquoi POST n'est-il pas idempotent ?
  3. Que se passe-t-il si le serveur renvoie un code 301 ?
  4. À quoi sert le header Origin ?
  5. Pourquoi utiliser HttpOnly sur les cookies de session ?
Présentation