À l'étape 4, ton appli météo appelait Open-Meteo avec fetch. Ce qui voyageait entre ton navigateur et leur serveur, c'est du HTTP : un format de messages tout simple, en texte. Le navigateur envoie une requête, le serveur renvoie une réponse. Toujours dans ce sens, toujours une réponse par requête.
curl est un petit programme qui fait des requêtes HTTP depuis le terminal, sans navigateur. Il est déjà installé sur Mac et sur Windows 10 ou plus récent. Ouvre le terminal de VS Code et tape :
# La réponse du serveur : statut, en-têtes, puis le corps
$ curl -i "https://api.open-meteo.com/v1/forecast?latitude=48.85&longitude=2.35¤t=temperature_2m,wind_speed_10m"
# Pareil, mais en montrant aussi la requête envoyée (lignes qui commencent par >)
$ curl -v "https://api.open-meteo.com/v1/forecast?latitude=48.85&longitude=2.35¤t=temperature_2m,wind_speed_10m"Voici ce que tu viens de voir, décortiqué :
LA REQUÊTE (ton ordi → le serveur)
GET /v1/forecast?latitude=48.85&longitude=2.35¤t=... HTTP/1.1 ← méthode, chemin, version
Host: api.open-meteo.com ← en-têtes : des infos en plus
User-Agent: curl/8.7.1
Accept: */*
← (pas de corps pour un GET)
LA RÉPONSE (le serveur → ton ordi)
HTTP/1.1 200 OK ← le code de statut
Content-Type: application/json; charset=utf-8 ← en-têtes
Date: Thu, 08 Oct 2026 06:34:35 GMT
{"latitude":48.853382,"longitude":2.355208, ... } ← le corps- La méthode : ce que tu veux faire.
GET= lire. Tu verrasPOST,PATCHetDELETEà l'étape 3. - L'URL : le serveur (
api.open-meteo.com), le chemin (/v1/forecast) et, après le?, des paramètresnom=valeurséparés par des&. - Les en-têtes : des infos en plus, une par ligne, sous la forme
Nom: valeur.Content-Typedit ce que contient le corps : ici du JSON. - Le corps : les données elles-mêmes. Vide pour un
GET, rempli dans la réponse. - Le code de statut : un nombre qui résume la réponse.
200= tout va bien,404= introuvable. On les verra en détail en mission 6.
Tu peux voir la même chose dans le navigateur : ouvre ton appli météo, F12, onglet Réseau, clique sur la requête forecast : onglets En-têtes et Réponse.
Sur Windows, dans PowerShell, curl -i affiche une erreur bizarre sur un paramètre : ton curl est un faux, un raccourci vers une autre commande. Tape curl.exe à la place de curl, partout dans ce tuto.
$ curl -i "https://api.open-meteo.com/v1/forecast?latitude=48.85&longitude=2.35¤t=temperature_2m,wind_speed_10m"
HTTP/1.1 200 OK
Date: Thu, 08 Oct 2026 06:33:43 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
{"latitude":48.853382,"longitude":2.355208,"generationtime_ms":0.0985,"utc_offset_seconds":0,"timezone":"GMT","timezone_abbreviation":"GMT","elevation":39.0,"current_units":{"time":"iso8601","interval":"seconds","temperature_2m":"°C","wind_speed_10m":"km/h"},"current":{"time":"2026-10-08T06:30","interval":900,"temperature_2m":10.8,"wind_speed_10m":14.8}}Les valeurs changent selon l'heure, mais la forme est toujours la même : une ligne de statut, des en-têtes, une ligne vide, puis le JSON. C'est exactement ce que ton fetch de l'étape 4 recevait.