Apprendre PHP

GET vs POST : lequel choisir et pourquoi

02 mars 2026 | 5 min de lecture
Retour aux apprendre php

Objectif : comprendre en profondeur la différence entre GET vs POST en PHP, savoir quand utiliser chaque méthode HTTP selon le contexte (SEO, sécurité, logique métier, API) et éviter les erreurs d’architecture fréquentes.



Choisir entre GET et POST en PHP ne se limite pas à une question de visibilité des paramètres dans l’URL. Le choix impacte le référencement naturel, la mise en cache navigateur, l’idempotence, la sécurité applicative, la performance serveur et même la clarté de votre architecture. Dans ce guide complet (mis à jour pour 2025), nous allons dépasser les explications simplistes issues des anciens manuels PHP et replacer GET et POST dans leur cadre HTTP moderne.












1) Définition des méthodes HTTP



HTTP est un protocole orienté requêtes. Chaque requête contient :




  • Une méthode (GET, POST, PUT, DELETE…)

  • Une URL

  • Des en-têtes (headers)

  • Un éventuel corps (body)



Historiquement, les manuels PHP expliquaient GET et POST principalement via les formulaires HTML. En réalité, ce sont des concepts bien plus larges : ils expriment une intention. GET signifie “je demande une ressource”. POST signifie “j’envoie des données pour traitement”.






2) Fonctionnement de GET en PHP



La méthode GET en PHP transmet les paramètres dans l’URL :



https://monsite.com/article.php?id=12&categorie=php


En PHP, ces paramètres sont accessibles via :



<?php
$id = $_GET['id'] ?? null;
$categorie = $_GET['categorie'] ?? null;

Caractéristiques clés :

  • Paramètres visibles dans l’URL
  • URL partageable
  • Indexable par Google
  • Mise en cache possible
  • Limite de longueur dépendante du serveur

GET est donc naturellement adapté à la lecture de contenu, aux filtres, à la pagination et aux recherches.

3) Fonctionnement de POST en PHP

La méthode POST en PHP envoie les données dans le corps de la requête HTTP (body). Elles ne sont pas visibles dans l’URL.

$email = $_POST['email'] ?? '';
$password = $_POST['password'] ?? '';

Caractéristiques principales :

  • Données non affichées dans l’URL
  • Non bookmarkable
  • Non indexable par défaut
  • Utilisé pour modifier un état
  • Permet l’upload de fichiers

POST est donc conçu pour la création, la modification ou l’envoi de données sensibles.

4) Différences techniques fondamentales

CritèreGETPOST
Emplacement des donnéesURLBody
Indexation SEOOuiNon
Cache navigateurOuiNon par défaut
IdempotenceOuiNon
Usage principalLectureAction / modification

Attention : ni GET ni POST ne sont “sécurisés” en soi. La sécurité dépend du HTTPS et de la validation serveur.

5) Impact SEO : GET vs POST

Du point de vue du référencement naturel, GET est indispensable. Les moteurs indexent des URLs, pas des requêtes POST.

Exemple correct :

/blog?tag=php

Exemple incorrect pour le SEO :

Formulaire POST de recherche sans URL dédiée.

Conclusion :

  • Recherche → GET
  • Filtres e-commerce → GET
  • Pagination → GET

6) Sécurité réelle de GET et POST

Une idée reçue dit que POST est plus sécurisé que GET. C’est faux.

Sans HTTPS :

  • Les données GET peuvent être interceptées
  • Les données POST aussi

La vraie sécurité repose sur :

  • HTTPS obligatoire
  • Validation stricte côté serveur
  • Protection CSRF
  • Requêtes préparées pour la base de données

7) Idempotence et architecture applicative

Une requête GET doit être idempotente : l’appeler 10 fois ne doit rien modifier.

POST peut modifier l’état :

  • Création d’un compte
  • Ajout au panier
  • Suppression d’un élément

Utiliser GET pour supprimer une ressource est une mauvaise pratique grave.

8) Cache HTTP et performance

GET peut être mis en cache par :

  • Le navigateur
  • Un CDN
  • Un reverse proxy

POST est rarement mis en cache. Cela signifie que GET peut être plus performant pour des contenus consultatifs.

9) Cas concrets : quel choix faire ?

Recherche interne

GET (SEO + partage URL)

Login utilisateur

POST obligatoire

Formulaire de contact

POST

Pagination

GET

Upload fichier

POST obligatoire

10) Erreurs fréquentes

  • Utiliser GET pour des actions sensibles
  • Confondre invisibilité URL et sécurité
  • Ne pas valider $_GET ou $_POST
  • Oublier HTTPS

Questions fréquentes

GET est-il moins sécurisé que POST ?

Non. Les deux nécessitent HTTPS.

Pourquoi POST pour un login ?

Parce qu’il modifie l’état serveur et évite l’exposition dans l’URL.

Peut-on référencer une page en POST ?

Non. Les moteurs indexent des URLs GET.

GET peut-il modifier une base de données ?

Techniquement oui, mais c’est une mauvaise pratique.

Conclusion

Le choix entre GET vs POST en PHP doit être guidé par l’intention :

  • Lecture → GET
  • Modification → POST
  • SEO → GET
  • Données sensibles → POST + HTTPS

Comprendre cette distinction améliore la qualité architecturale, la sécurité et le référencement de vos applications PHP modernes.

Formulaire PHP POST : validation propre + gestion erreurs

Traiter un formulaire PHP POST semble simple : on récupère $_POST et on fait “le truc”. En réalité, c’est là que commencent les failles (XSS), les erreurs utilisateur mal gérées et les doublons de soumission. Dans ce tutoriel, vous allez…

PDO en PHP : connexion + requêtes préparées (anti-injection SQL)

Sommaire Connexion propre à MySQL avec PDOSELECT avec requête préparéeINSERT sécurisé UPDATE Pourquoi les requêtes préparées protègent de l’injection SQL Gérer les erreurs : dev vs prod Exemple complet minimal fonctionnel Erreurs fréquentes Conclusion 1) Connexion propre à MySQL avec…