Documentation · Chapitre 02

Que se passe-t-il
après Entrée ?

Vous écrivez une adresse dans le navigateur. Suivons maintenant la demande jusqu’à la page qui apparaît.

Aucun vocabulaire technique préalable n’est nécessaire. Chaque nouveau mot est expliqué avant d’être utilisé.

PREMIER NOUVEAU MOT

Une demande s’appelle une requête.

Lorsque le navigateur demande une page au serveur, les développeurs appellent ce message une requête. Elle contient principalement l’action souhaitée et l’adresse demandée.

phpaml — zsh
GET /books/12
GET

signifie simplement : « donne-moi cette information »

/books/12

est la partie de l’adresse qui désigne le livre numéro 12

HTTP est le nom des règles communes utilisées par les navigateurs et les serveurs pour se parler. Vous n’avez pas à écrire ces messages à la main : le navigateur le fait pour vous.

La demande traverse plusieurs postes.

Comme une lettre passe par plusieurs mains avant d’arriver au bon service, la requête avance étape par étape. Chaque poste répond à une question simple.

  1. 1
    Entrée de l’application

    Une demande vient-elle d’arriver ? PHPAML démarre le projet.

  2. 2
    Contrôles de sécurité

    Cette personne a-t-elle le droit de continuer ?

  3. 3
    Route

    Quel code sait traiter l’adresse /books/12 ? Une route est simplement une règle qui relie une adresse à une action.

  4. 4
    Contrôleur

    Que faut-il faire pour obtenir le livre ? Le contrôleur organise le travail.

  5. 5
    Données et présentation

    Quel est le livre et comment doit-il apparaître ?

  6. 6
    Réponse

    Le serveur renvoie enfin la page terminée au navigateur.

LES MOTS À CONNAÎTRE

Un petit dictionnaire avant de continuer

Requête
La demande envoyée par le navigateur.
Route
La règle qui relie une adresse au code chargé de la traiter.
Contrôleur
Le code qui organise les actions nécessaires pour répondre.
Réponse
Le résultat renvoyé au navigateur : une page, des données ou une erreur.

Décomposons une adresse complète.

phpaml — zsh
http://127.0.0.1:8910/books/12
http : la manière de communiquerhttp://
127.0.0.1 : votre propre ordinateurhost
8910 : la porte utilisée par aml serveport
/books/12 : la ressource demandéepath

Sur un site public, le nom de domaine remplace généralement 127.0.0.1 et le port n’est pas affiché. Le principe reste identique : l’adresse permet au navigateur de trouver un serveur puis de préciser ce qu’il souhaite.

Une requête peut transporter des informations de trois façons.

Dans le chemin

/books/12 — le nombre 12 identifie le livre.

Après le signe ?

/books?author=Ada — pratique pour filtrer ou rechercher.

Dans le contenu envoyé

Un formulaire peut envoyer un nom, un courriel ou un nouveau livre sans les afficher dans l’adresse.

Dans les en-têtes

Des informations complémentaires : format accepté, langue, session ou authentification.

Les actions HTTP les plus utiles.

Lire une liste ou une pageGET
Créer une nouvelle informationPOST
Remplacer une information existantePUT
Modifier seulement une partiePATCH
Supprimer une informationDELETE

Ces mots décrivent l’intention. Une route associe donc une action et un chemin : GET /books ne signifie pas la même chose que POST /books.

Lire rapidement les codes de réponse.

2xx

Le travail a réussi. 200 indique une réponse normale; 201 indique souvent une création réussie.

3xx

Le navigateur doit aller ailleurs. 301 est un déplacement permanent; 302 une redirection temporaire.

4xx

La demande ne peut pas être satisfaite : adresse, autorisation, validation ou action incorrecte.

5xx

L’application ou le serveur a rencontré une erreur pendant le traitement.

Pourquoi ne pas ouvrir directement un fichier PHP ?

Parce qu’une adresse publique ne doit pas dépendre de l’emplacement physique du code. La route /books/12 peut évoluer sans exposer src/controllers/BookController.php. Le routeur fournit aussi un seul endroit pour contrôler la méthode HTTP, l’authentification et les paramètres.

À ÉVITER/src/controllers/book.php?id=12

L’URL révèle l’organisation interne et couple le navigateur aux fichiers.

À PRÉFÉRER/books/12

L’adresse décrit la ressource, tandis que PHPAML choisit le code interne.

Et si quelque chose ne fonctionne pas ?

Le serveur renvoie un nombre appelé code d’état. Ce nombre résume le résultat. Vous avez probablement déjà rencontré 404 sur Internet.

404Adresse introuvable

L’application ne connaît pas cette adresse.

405Action refusée

L’adresse existe, mais pas pour l’action demandée.

500Le code a échoué

L’application a commencé le travail, puis une erreur s’est produite.

QUESTIONS DE DÉBUTANT

Vous vous demandez peut-être…

Une route est-elle une page ?

Pas exactement. La route est la règle qui décide quel code répond à une adresse. Ce code peut ensuite construire une page ou renvoyer des données.

Pourquoi GET ?

GET indique que le navigateur veut lire une ressource. D’autres actions existent, comme POST pour envoyer de nouvelles informations.

Pourquoi afficher des codes d’erreur ?

Ils indiquent à quel endroit chercher : adresse inconnue, action interdite ou erreur pendant l’exécution.

VÉRIFIEZ VOTRE COMPRÉHENSION

Une route GET /users existe. Que doit répondre une requête POST /users si aucune route POST n’est déclarée ?

Afficher la réponse

405 Method Not Allowed

À VOUS DE JOUER

Classez ces problèmes : /books/12 inconnu, contrôleur qui lance une exception, route accessible seulement en POST.

Voir un indice

Réponses attendues : 404, 500 et 405.

EN RÉSUMÉ

Ce qu’il faut retenir

  • public/index.php amorce l’application.
  • Les middlewares entourent le traitement.
  • Le routeur utilise la méthode et le chemin.
  • Response contient toujours le résultat HTTP final.