Glisser

PHP : comment fonctionne une requête HTTP ?

PHP : comment fonctionne une requête HTTP (partie 4)

Écrit par : Thibault Chazottes

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 :

  1. le navigateur envoie une requête HTTP ;
  2. le serveur la reçoit, exécute ce qu’il doit (dont PHP s’il y a un .php) ;
  3. le serveur renvoie une réponse HTTP ;
  4. 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 GET pour 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 jeton Authorization si 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

  1. GET sur / (ou /script.php) ;
  2. le serveur reçoit la requête ;
  3. il exécute PHP ;
  4. si tout va bien, réponse HTTP 200 + HTML ;
  5. 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 :

  1. Pas de index.php : GET sur localhost:8000 → réponse 404. Le serveur n’a rien à servir.
  2. Un fichier qui existe (script.php, ou le index.php du Hello World) : GET sur 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).

Étiquettes :