PUT vs POST – Différence entre eux
Principales différences entre PUT et POST
- La méthode PUT est appelée lorsque vous devez modifier une seule ressource, tandis que la méthode POST est appelée lorsque vous devez ajouter une ressource enfant.
- Les réponses de la méthode POST peuvent être mises en cache, mais vous ne pouvez pas mettre en cache les réponses de la méthode PUT.
- Vous pouvez utiliser la requête UPDATE dans PUT, alors que vous pouvez utiliser la requête de création dans POST.
- Dans la méthode PUT, le client décide quelle ressource URI doit avoir, et dans la méthode POST, le serveur décide quelle ressource URI doit avoir.
- PUT fonctionne de manière spécifique, tandis que POST fonctionne de manière abstraite.
- Si vous envoyez plusieurs fois la même requête PUT, le résultat restera le même, mais si vous envoyez plusieurs fois la même requête POST, vous recevrez des résultats différents.
- La méthode PUT est idempotente, alors que la méthode POST n’est pas idempotente.
Qu’est-ce que la méthode PUT ?
La méthode PUT est utilisée pour mettre à jour les ressources disponibles sur le serveur. En règle générale, il remplace tout ce qui existe sur l'URL cible par autre chose. Vous pouvez l'utiliser pour créer une nouvelle ressource ou écraser une ressource existante. PUT demande que l'entité incluse soit stockée sous l'URI (Uniform Resource Identifier) demandé fourni.
Qu’est-ce que la méthode POST ?
POST est une méthode prise en charge par HTTP et
indique qu'un serveur Web accepte les données incluses dans le corps du message demandé. POST est souvent utilisé par le World Wide Web pour envoyer les données générées par l'utilisateur au serveur Web ou lorsque vous téléchargez un fichier.
Différences entre PUT et POST dans les API REST
Voici la différence importante entre les méthodes PUT et POST :
PUT | POSTEZ |
---|---|
Cette méthode est idempotente. | Cette méthode n’est pas idempotente. |
La méthode PUT est appelée lorsque vous devez modifier une seule ressource, qui fait déjà partie de la collection de ressources. | La méthode POST est appelée lorsque vous devez ajouter une ressource enfant dans la collection de ressources. |
La RFC-2616 montre que la méthode PUT envoie une requête pour une entité incluse stockée dans l'URI de requête fourni. | Cette méthode demande au serveur d'accepter l'entité incluse dans la demande. |
La syntaxe de la méthode PUT est PUT /questions/{question-id} | La syntaxe de la méthode POST est POST /questions |
Vous ne pouvez pas mettre en cache les réponses de la méthode PUT. | La réponse de la méthode POST peut être mise en cache. |
PUT /vi/juice/orders/1234 indique que vous mettez à jour une ressource identifiée par « 1234 ». | POST /vi/juice/orders indique que vous créez une nouvelle ressource et renvoie un identifiant pour décrire la ressource. |
Si vous envoyez plusieurs fois la même demande, le résultat restera le même. | Si vous envoyez la même requête POST plusieurs fois, vous recevrez des résultats différents. |
PUT fonctionne de manière spécifique. | POST fonctionne comme abstrait. |
Nous utilisons la requête UPDATE dans PUT. | Nous utilisons créer une requête dans POST. |
Dans la méthode PUT, le client décide quelle ressource URI doit avoir. | Dans la méthode POST, le serveur décide quelle ressource URI doit avoir. |
Exemple de PUT
Voici l'exemple de serveur Web d'une méthode PUT :
HTTP PUT http://www.google.com/users/234
HTTP PUT http://www.google.com/users/234/accounts/567
Requêter
PUT /new.html HTTP/1.1 Host: example.com Content-type: text/html Content-length: 20 <p>New File</p>
Commentaires
Si la ressource cible a une représentation actuelle et est modifiée avec l'état de la représentation incluse, alors le serveur doit envoyer deux réponses. Le premier code de réponse est 200 (OK) et le deuxième code de réponse est 204 (Pas de contenu).
Si la ressource cible n'a aucune représentation, le serveur doit en informer l'utilisateur en envoyant une réponse de code 201 (Créé).
HTTP/1.1 201 Created Content-Location: /new.html
Exemple de POST
Voici un exemple de méthode POST :
HTTP POST http://www.google.com/users
HTTP POST http://www.google.com/users/234/accounts
Un formulaire utilisant le type de contenu application/x-www-form-urlencoded par défaut :
POST /test HTTP/1.1 Host: abc.example Content-Type: application/x-www-form-urlencoded Content-Length: 40 field1=value1&field2=value2
Tester une API avec des requêtes PUT
Voici les étapes pour tester l'API avec les requêtes PUT :
Étape 1) Mettre à jour les ressources avec la requête PUT.
Étape 2) Utilisez la méthode GET pour la ressource. Si la demande PUT réussit, vous recevrez de nouvelles données. Cette méthode échouera si les données fournies dans la demande ne sont pas valides. Par conséquent, rien ne sera mis à jour.
Tester une API avec des requêtes POST
Voici les étapes pour tester l'API avec les requêtes POST :
Étape 1) Créez une ressource à l'aide de la requête POST et assurez-vous qu'elle renvoie le code d'état 200.
Étape 2) Faites une requête GET pour cette ressource et enregistrez les données au format correct.
Étape 3) Vous devez ajouter des tests qui garantissent que les requêtes POST échouent avec des données incorrectes.
Avantages de la méthode PUT
Voici les avantages/avantages de l’utilisation de la méthode PUT :
- Il vous aide à stocker l'entité fournie sous l'URI fourni
- Si l'entité fournie existe déjà, vous pouvez effectuer l'opération de mise à jour ou créer avec cet URI.
- Vous pouvez créer une ressource autant de fois que vous le souhaitez.
- Créer une ressource avec la méthode PUT est très simple.
- Vous n'avez pas besoin de vérifier si l'utilisateur a cliqué plusieurs fois sur le bouton Soumettre ou non.
- Il peut identifier l'entité jointe à la demande.
Avantages de la méthode POST
Voici les avantages/avantages de l’utilisation de la méthode POST :
- Cette méthode vous aide à déterminer l’URI de la ressource.
- Spécifier un nouvel en-tête d’emplacement de ressource est très simple en utilisant l’en-tête d’emplacement.
- Vous pouvez envoyer une demande pour accepter l'entité en tant que nouveau subordonné de la ressource, identifiée par l'URI.
- Vous pouvez envoyer des données générées par l'utilisateur au serveur Web.
- C'est très utile lorsque vous ne connaissez pas l'URL pour conserver une ressource.
- Utilisez POST lorsque vous avez besoin du serveur, qui contrôle la génération d'URL de vos ressources.
- Le POST est une méthode sécurisée car ses requêtes ne restent pas dans l'historique du navigateur.
- Vous pouvez transmettre sans effort une grande quantité de données par courrier.
- Vous pouvez garder les données privées.
- Cette méthode peut être utilisée pour envoyer des données binaires ainsi que ASCII.