Dans le cas de sites Web modernes et in­te­rac­tifs, les clients (c’est-à-dire les na­vi­ga­teurs Web) ré­cu­pè­rent non seulement un document HTML sur le serveur, mais lui envoient aussi souvent des in­for­ma­tions comme :

  • Le texte d’un terme de recherche que l’uti­li­sa­teur a saisi dans le champ de recherche
  • Le contenu d’un for­mu­laire rempli
  • La sélection des filtres dans une boutique en ligne
  • Le tri d’une liste

Pour la trans­mis­sion de ces in­for­ma­tions au serveur, le protocole HTTP prévoit dif­fé­rentes méthodes de requête. Les deux plus im­por­tantes sont GET et POST. Bien que les deux abou­tis­sent au même résultat, elles sont fon­da­men­ta­le­ment dif­fé­rentes. Voici dans cet article un aperçu de leurs dif­fé­rences et nos ex­pli­ca­tions pour savoir quand les méthodes GET ou POST sont les plus ap­pro­priées.

Conseil

Si vous souhaitez en savoir plus sur les méthodes de requête en général, lisez notre article sur les requêtes HTTP.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

GET

Avec la méthode GET, les données à envoyer au serveur sont écrites di­rec­te­ment dans l’URL. Dans la fenêtre de votre na­vi­ga­teur, cela ressemble à ceci :

www.example.com/register.php?firstname=peter&name=miller&age=55&gender=male

Toutes les in­for­ma­tions saisies par l’uti­li­sa­teur (les pa­ra­mètres dits URL) sont trans­mises aussi librement que l’URL elle-même. Cela présente des avantages et des in­con­vé­nients.

Avantages

Les pa­ra­mètres de l’URL peuvent être en­re­gis­trés avec l’adresse du site Web. Cela permet de mettre une requête de recherche en marque-page et de la récupérer plus tard. Si né­ces­saire, la page peut également être récupérée via l’his­to­rique de na­vi­ga­tion.

Cela est utile pour vi­sua­li­ser par exemple ré­gu­liè­re­ment une section de carte Google Maps ou pour en­re­gis­trer des pages Web contenant certains pa­ra­mètres de filtrage et de tri.

In­con­vé­nients

Le principal in­con­vé­nient de la méthode GET est l’absence de pro­tec­tion des données. Les pa­ra­mètres URL envoyés sont non seulement visibles par tous dans la barre d’adresse du na­vi­ga­teur, mais sont également stockés sans chif­fre­ment dans l’his­to­rique du na­vi­ga­teur, dans le cache et dans le fichier log du serveur.

Un deuxième in­con­vé­nient est sa capacité limitée : suivant le serveur Web et le na­vi­ga­teur, l’URL ne peut pas contenir plus de 2 000 ca­rac­tères environ. De plus, les pa­ra­mètres des URL ne peuvent contenir que des ca­rac­tères ASCII (lettres, chiffres, ca­rac­tères spéciaux, etc.), et non des données binaires telles que des fichiers audio ou des images.

POST

La méthode POST écrit les pa­ra­mètres URL dans la requête HTTP pour le serveur. Les pa­ra­mètres ne sont donc pas visibles pour les uti­li­sa­teurs et la portée des requêtes POST est illimitée.

Avantages

Lorsqu’il s’agit de trans­mettre des données sensibles au serveur, par exemple un for­mu­laire d’ins­crip­tion avec nom d’uti­li­sa­teur et mot de passe, la méthode POST permet de garder la con­fi­den­tia­lité né­ces­saire. Les données ne sont pas mises en cache et n’ap­pa­rais­sent pas dans l’his­to­rique de na­vi­ga­tion. La flexi­bi­lité est également de mise avec POST : non seulement des textes courts, mais aussi des données de toute taille et de tout type peuvent être transmis, comme des photos ou des vidéos.

In­con­vé­nients

Si une page Web est mise à jour avec un for­mu­laire dans le na­vi­ga­teur (par exemple, en utilisant le bouton « Précédent » / « Retour »), les données du for­mu­laire doivent être de nouveau soumises. Vous avez cer­tai­ne­ment déjà vu des aver­tis­se­ments qui s’y réfèrent. Il existe un risque que les données soient envoyées plusieurs fois par inad­ver­tance, ce qui peut dé­clen­cher des commandes en double par exemple. Toutefois, les pro­grammes de boutiques en ligne les plus récents peuvent empêcher ces problèmes.

De même, les données trans­mises par la méthode POST ne peuvent pas être sau­ve­gar­dées sous forme de marque-page avec l’URL.

Com­pa­rai­son entre GET et POST

  GET POST
Vi­si­bi­lité Visible pour l’uti­li­sa­teur dans le champ d’adresse Invisible pour l’uti­li­sa­teur
Marque-page et his­to­rique de na­vi­ga­tion Les pa­ra­mètres de l’URL sont stockés en même temps que l’URL. L’URL est en­re­gis­trée sans pa­ra­mètres URL.
Cache et fichier log du serveur Les pa­ra­mètres de l’URL sont stockés sans chif­fre­ment Les pa­ra­mètres de l’URL ne sont pas en­re­gis­trés au­to­ma­ti­que­ment.
Com­por­te­ment lors de l’ac­tua­li­sa­tion du na­vi­ga­teur / Bouton « précédent » Les pa­ra­mètres de l’URL ne sont pas envoyés à nouveau. Le na­vi­ga­teur avertit que les données du for­mu­laire doivent être renvoyées.
Type de données Ca­rac­tères ASCII uni­que­ment. Ca­rac­tères ASCII mais également données binaires.
Longueur des données Limitée - longueur maximale de l’URL à 2 048 ca­rac­tères. Illimitée.

Quand utiliser quelle méthode ?

POST est presque toujours favorisé lorsque l’uti­li­sa­teur doit soumettre des données ou des fichiers au serveur, par exemple pour remplir des for­mu­laires ou té­lé­char­ger des photos.

GET est par­ti­cu­liè­re­ment bien adapté pour per­son­na­li­ser les sites Web : les re­cherches des uti­li­sa­teurs, les pa­ra­mètres de filtrage et le tri des listes peuvent être mis en marque-page avec l’URL, de sorte qu’à la prochaine visite du site, l’uti­li­sa­teur re­trou­vera la page telle qu’il l’a laissée.

Une simple « règle de base » pour finir :

  • GET pour les pa­ra­mètres d’un site Web (filtres, tri, saisies de recherche, etc.).
  • POST pour la trans­mis­sion des in­for­ma­tions et des données de l’uti­li­sa­teur.
Aller au menu principal