En bref
- Utilisation
GET
pour les safe and
idempotent
demandes
- Utilisation
POST
pour les neither safe nor idempotent
demandes
En détail
Il y a une place appropriée pour chacun. Même si vous ne suivez pas les principes RESTful , vous pouvez gagner beaucoup en apprenant sur REST et sur le fonctionnement d'une approche orientée ressources.
Une application RESTful sera use GETs
pour les opérations qui sont les deux safe and idempotent
.
Une safe
opération est une opération qui ne not change the data
demande.
Une idempotent
opération est une opération dans laquelle le résultat, be the same
peu importe le nombre de fois que vous le demanderez.
Il va de soi que, comme les GET sont utilisés pour des opérations sûres , ils sont automatiquement également idempotents . Généralement, un GET est utilisé pour récupérer une ressource (une question et ses réponses associées lors d'un débordement de pile par exemple) ou une collection de ressources.
Une application RESTful utilisera PUTs
pour les opérations qui le sont not safe but idempotent
.
Je sais que la question portait sur GET et POST, mais je reviendrai sur POST dans une seconde.
Typiquement, un PUT est utilisé pour éditer une ressource (éditer une question ou une réponse sur débordement de pile par exemple).
Un POST
serait utilisé pour toute opération qui l'est neither safe or idempotent
.
En règle générale, un POST serait utilisé pour créer une nouvelle ressource, par exemple en créant une nouvelle question SO (bien que dans certains modèles, un PUT soit également utilisé pour cela).
Si vous exécutez le POST deux fois, vous finirez par créer DEUX nouvelles questions.
Il y a aussi une opération DELETE, mais je suppose que je peux laisser ça là :)
Discussion
En termes pratiques, les navigateurs Web modernes ne prennent généralement en charge que GET et POST de manière fiable (vous pouvez effectuer toutes ces opérations via des appels javascript, mais en termes de saisie de données dans les formulaires et de validation, vous avez généralement les deux options). Dans une application RESTful, le POST sera souvent remplacé pour fournir également les appels PUT et DELETE.
Mais, même si vous ne suivez pas les principes RESTful, il peut être utile de penser en termes d'utilisation de GET pour récupérer / afficher des informations et POST pour créer / modifier des informations.
Vous ne devez jamais utiliser GET pour une opération qui modifie des données. Si un moteur de recherche explore un lien vers votre mauvaise opération ou les signets du client, cela pourrait causer de gros problèmes.