Requêtes GET et POST

Pour comprendre le fonctionnement des CMS, il est nécessaire de comprendre ce qu’est une requête en GET, et ses dérivés contemporains.

1/6 | Suivant

Un CMS est un logiciel installé sur un serveur, qui va recevoir des requêtes (la demande de voir certains contenus) et renvoyer les contenus correspondants, quand c’est possible et autorisé. Par défaut, un CMS montre le contenu de la page d’entrée du site, ensuite, selon les requêtes, il va afficher telle ou telle page spécifique : un article, la biographie d’un auteur, une liste de pages correspondant à une catégorie ou une recherche, etc.

Comment le CMS peut il identifier la demande qui lui est faite ? Il s’appuie sur l’adresse qui lui est envoyée. Lorsqu’on demande l’accès à la page principale d’un site, seule l’adresse web suffit, comme
https://arts-numeriques.codedrops.net/
Mais si on veut accéder à un contenu particulier, l’adresse devient plus longue
https://arts-numeriques.codedrops.net/-CMS-Wordpress-
Comme on le voit ici, il y a un ensemble de lettre en plus dans l’adresse, et cet ensemble est analysé par le logiciel pour savoir quel contenu est demandé. Sa structure est donc précise et un mauvais copier coller put envoyer sur une page d’erreur.

L’adresse n’est donc pas une simple adresse mais une requête qui passe dans l’adresse. On dit qu’elle est alors en GET, explicitement présente dans l’adresse, ce qui permet sauvegarder cette adresse ou la donner à quelqu’un d’autre : en copiant et collant cette adresse, on peut retrouver exactement la même page par la suite.

Ce type de requête a évidemment ses limites : il est déconseillé de gérer un mot de passe dans une requête en GET, puisque son piratage serait trop simple.

La requête en GET

Les origines de la requête en GET est l’usage des formulaire. Pour le comprendre, plaçons ce code html dans une page sur un serveur PHP :

<!DOCTYPE html>
<html lang="">
   <head>
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width, initial-scale=1.0">
       <title>Un test de requête GET</title>
   </head>
   <body>
       <h1>Recevoir une information en GET</h1>
       <h2>J'ai reçu ceci:</h2>
       <div class="contenu_requete">
           <?php
           print_r($_GET);
           ?>
       </div>
   </body>
</html>

Ça donne ça.

En fait, la fonction print_r($_GET) ; permet d’afficher ce que le serveur a reçu comme requête en get, c’est à dire ce qu’il a reçu dans l’adresse en plus de l’adresse du serveur lui-même. Actuellement, en pointant sur l’adresse de la page, il n’y a rien dans $_GET, qui est une variable créée par le serveur contenant les informations récupérées dans l’adresse de la page.

Ajouter une requête
Si on ajoute dans l’adresse de la page ceci : ?truc=essai
On obtient cela :

le serveur envoie une variable tableau (une variable contenant une liste d’information et pas une seule) d’un type particulier, qu’on appelle tableau associatif : c’est une liste de clés (ici truc par exemple) contenant chacune une valeur (ici "truc" contient "essai").

On peut donc envoyer via l’adresse plusieurs informations, et c’est souvent le cas, via l’association cle-valeur, comme ceci :
?truc=essai&machin=info
Remaquez que le point d’interrogation sépare l’adresse des différents éléments de la requête, et que chaque duo clé/valeur est séparé par un esperluette (&).

Le résultat est ceci :