Dans la vidéo précédente, on a ouvert localhost:8000 et affiché un Hello World via index.php. La question suivante : que s’est-il passé entre le navigateur, le serveur et ce fichier PHP ?
Le web fonctionne par requête et réponse, toutes les deux en HTTP. Un peu de théorie, puis l’inspecteur du navigateur (onglet Réseau) pour le voir en vrai, comme dans la vidéo.
Requête, puis réponse
Quand vous tapez une URL, le navigateur n’« ouvre » pas un fichier PHP. Il envoie une requête HTTP à un serveur. Le serveur la traite, et renvoie une réponse HTTP. Les deux passent par le même protocole : HTTP.
Schéma mental :
- le navigateur envoie une requête HTTP ;
- le serveur la reçoit, exécute ce qu’il doit (dont PHP s’il y a un
.php) ; - le serveur renvoie une réponse HTTP ;
- le navigateur affiche le résultat.
Anatomie d’une requête
Une requête HTTP, ce n’est pas magique. On y trouve notamment :
- une méthode (le « verbe ») : souvent
GETpour demander une page ; - une URL : la ressource demandée (
/pour l’accueil,/script.php, etc.) ; - des en-têtes (headers) : navigateur (
User-Agent), formats acceptés, parfois un jetonAuthorizationsi vous avez déjà touché à une API ; - éventuellement un corps (body) : vide en GET, rempli en POST (formulaire : nom, mot de passe…).
GET, c’est « je veux récupérer une ressource ». POST, c’est « j’envoie des données ». Il existe aussi PUT, PATCH, DELETE. On creusera POST avec les formulaires plus tard dans la playlist. Référence : méthodes HTTP.
Où est PHP dans tout ça ?
Le navigateur appelle une URL (http://localhost:8000 ou monsite.com/moncompte). Il ne sait pas, et n’a pas besoin de savoir, qu’il y a un index.php derrière.
Le fichier .php reste côté serveur. Il est invisible. Le navigateur ne le télécharge jamais.
Sur le serveur, on a par exemple :
<?php
echo 'Hello World';
PHP s’exécute, et le serveur renvoie au navigateur uniquement du HTML, du type :
Hello World
Le navigateur veut du HTML, du CSS, du JS, une image, une vidéo, éventuellement du JSON. Pas de PHP, pas de Python, pas de Java. C’est le serveur qui a exécuté le langage.
Anatomie d’une réponse
La réponse HTTP, elle aussi, a des headers et un body.
- un statut :
200= OK,404= page introuvable,500= erreur serveur,401/403= non autorisé… Plus c’est précis, plus c’est simple à déboguer. Liste : codes de statut ; - des headers : on renvoie du HTML, une image, du JSON, etc. (
Content-Type) ; - un body : le contenu, ici le HTML généré (le Hello World).
Même idée dans l’autre sens : un formulaire d’inscription en POST envoie une requête avec des headers et un body (nom, mot de passe).
Le cycle complet, pour PHP
GETsur/(ou/script.php) ;- le serveur reçoit la requête ;
- il exécute PHP ;
- si tout va bien, réponse HTTP 200 + HTML ;
- le navigateur affiche.
C’est tout. Le reste de la playlist (sessions, formulaires, base de données) se branche dans cette étape 3, côté serveur.
Dans l’inspecteur : onglet Réseau
Théorie mise de côté, ouvrez votre page locale, clic droit → Inspecter → onglet Réseau (Network). Brave, Chrome, Edge, Firefox, Safari : le nom est le même.
Dans la vidéo, deux cas :
- Pas de
index.php:GETsurlocalhost:8000→ réponse 404. Le serveur n’a rien à servir. - Un fichier qui existe (
script.php, ou leindex.phpdu Hello World) :GETsur l’URL → réponse 200, et dans la réponse le HTML généré.
Vous verrez aussi d’autres requêtes (extensions du navigateur, favicon…). Filtrez sur le document principal. Dans les détails : verbe, URL, statut, headers de la requête, headers de la réponse, body.
Retenez juste : navigateur → requête HTTP → serveur → réponse HTTP → navigateur. PHP n’apparaît que au milieu, côté serveur.
Démo vidéo
FAQ rapide (SEO & technique)
Quelle différence entre requête et réponse HTTP ?
La requête part du navigateur vers le serveur. La réponse revient du serveur vers le navigateur. Les deux sont du HTTP.
Le navigateur voit-il le fichier PHP ?
Non. Il voit le résultat (HTML, etc.). Le .php reste sur le serveur.
GET ou POST ?
GET pour demander une ressource (afficher une page). POST pour envoyer des données (formulaire). On détaillera POST plus tard.
C’est quoi un 200 et un 404 ?
200 : OK, le serveur a trouvé et renvoyé la ressource. 404 : introuvable (pas de index.php par exemple). Voir les statuts HTTP.
Où voir ça dans le navigateur ?
Inspecteur → onglet Réseau, puis recharger la page.
Conclusion
Une page PHP, ce n’est pas « le navigateur qui lit du PHP ». C’est un aller-retour HTTP : le serveur exécute le script, et le navigateur n’affiche que le HTML renvoyé. 200 si le fichier est là, 404 sinon.
Suite de la série : PHP : variables et types (tout comprendre).