Il y a deux implications communes de "sécurité" pour utiliser GET
. Comme les données apparaissent dans la chaîne URL, il est possible que quelqu'un qui regarde par-dessus votre épaule dans la barre d'adresse/URL puisse voir quelque chose qu'il ne devrait pas voir, comme un cookie de session qui pourrait être utilisé pour détourner votre session. Gardez à l'esprit que tout le monde a des téléphones avec appareil photo.
L'autre implication de la sécurité de GET
a à voir avec GET
qui sont enregistrées dans le journal d'accès de la plupart des serveurs web en tant que partie de l'URL de la demande. En fonction de la situation, du climat réglementaire et de la sensibilité générale des données, cela peut susciter des inquiétudes.
Certains clients/pare-feu/systèmes de sécurité informatique peuvent désapprouver GET
des demandes contenant une quantité excessive de données et peuvent donc fournir des résultats peu fiables.
POST
prend en charge des fonctionnalités avancées telles que la prise en charge des entrées binaires en plusieurs parties utilisées pour le téléchargement de fichiers vers des serveurs Web.
POST
nécessite un en-tête de longueur de contenu, ce qui peut accroître la complexité de la mise en œuvre d'une application client spécifique, car la taille des données soumises doit être connue à l'avance, ce qui empêche la formation d'une demande client dans un mode incrémental à passage unique. Il s'agit peut-être d'un problème mineur pour ceux qui choisissent d'abuser de HTTP
en l'utilisant comme transport RPC (Remote Procedure Call).
D'autres ont déjà fait un bon travail en couvrant les différences sémantiques et la partie "quand" de cette question.
3 votes
Get n'a pas de corps, ce qui signifie en pratique que vous êtes limité aux paires nom -> valeur comme structure de données, en raison de l'absence de tout format d'encodage de chaîne de requête pour des structures plus complexes. Si vous avez besoin de gérer des structures de données plus complexes dans vos requêtes (par exemple un tableau, un objet, etc.), vous devez utiliser POST et peut-être des formats plus avancés (json/xml). En bref : n'utilisez GET que si vous êtes vraiment obligé (c'est-à-dire que l'URL/la ressource doit pouvoir être découverte).
1 votes
Duplicata possible de Quand utilisez-vous POST et quand utilisez-vous GET ?