GET et POST sont les deux méthodes de requête HTTP les plus couramment utilisées. En règle générale, les requêtes GET sont utilisées pour demander des pages Web, tandis que POST est utilisé pour envoyer des données au serveur Web, par exemple via un formulaire Web.
Astuce : Bien qu'elles soient appelées méthodes HTTP, GET et POST sont également utilisées dans HTTPS.
L'une des distinctions importantes est que tous les paramètres inclus dans les requêtes GET sont inclus dans l'URL elle-même, alors que les paramètres des requêtes POST font partie du corps de la requête.
Par exemple, une URL de requête GET peut ressembler à « GET.php?parameter=value » alors que l'URL d'une requête POST ressemblera à « POST.php », puis aura le « parameter=value » défini dans le corps de la requête.
L'une des principales ramifications de ceci est que lorsque les demandes de journal des serveurs Web sont enregistrées, l'URL demandée est toujours enregistrée. Ainsi, pour les requêtes GET, les paramètres sont également enregistrés, dans le cas des requêtes POST, bien que les valeurs ne soient pas enregistrées car le corps de la demande n'est pas enregistré. Ceci est particulièrement important pour les formulaires contenant des données sensibles telles que des mots de passe ou des PII (Personally Identifiable Information), car l'utilisation de POST signifie que ces informations ne sont pas enregistrées sur les serveurs Web.
D'autres différences entre GET et POST incluent le fait que les requêtes GET peuvent être mises en cache par le navigateur ou des caches tiers, les requêtes GET sont incluses dans l'historique du navigateur et peuvent être mises en signet. Les requêtes POST en comparaison ne sont jamais mises en cache, ne sont pas enregistrées dans l'historique du navigateur et ne peuvent pas être mises en signet.
Il est possible de configurer des formulaires pour utiliser une requête GET pour envoyer des données au serveur Web, mais cela est une mauvaise idée car tous ces facteurs entrent en ligne de compte. C'est particulièrement important pour les formulaires sensibles tels que les formulaires de connexion, car si cette demande était enregistrée, elle divulguerait le mot de passe de l'utilisateur, et si la réponse était mise en cache par un tiers, elle pourrait permettre à d'autres utilisateurs de se connecter au compte de l'utilisateur.