PUT versus POST – Verschil daartussen
Belangrijkste verschillen tussen PUT en POST
- De PUT-methode wordt aangeroepen wanneer u een enkele bron moet wijzigen, terwijl de POST-methode wordt aangeroepen wanneer u een onderliggende bron moet toevoegen.
- Reacties op de POST-methode kunnen in de cache worden opgeslagen, maar u kunt de reacties op de PUT-methode niet in de cache opslaan.
- U kunt de UPDATE-query gebruiken in PUT, terwijl u een query kunt maken in POST.
- Bij de PUT-methode beslist de client welke URI-bron zou moeten hebben, en bij de POST-methode beslist de server welke URI-bron zou moeten hebben.
- PUT werkt als specifiek, terwijl POST als abstract werkt.
- Als u hetzelfde PUT-verzoek meerdere keren verzendt, blijft het resultaat hetzelfde, maar als u hetzelfde POST-verzoek meerdere keren verzendt, ontvangt u verschillende resultaten.
- De PUT-methode is idempotent, terwijl de POST-methode niet idempotent is.

Wat is de PUT-methode?
De PUT-methode wordt gebruikt om de beschikbare bronnen op de server bij te werken. Normaal gesproken vervangt het alles wat op de doel-URL bestaat door iets anders. U kunt het gebruiken om een nieuwe bron te maken of een bestaande te overschrijven. PUT verzoekt dat de ingesloten entiteit moet worden opgeslagen onder de opgegeven aangevraagde URI (Uniform Resource Identifier).
Wat is POST-methode?
POST is een methode die wordt ondersteund door HTTP en
geeft aan dat een webserver de gegevens accepteert die zijn opgenomen in de hoofdtekst van het gevraagde bericht. POST wordt vaak gebruikt door World Wide Web om door gebruikers gegenereerde gegevens naar de webserver te sturen of wanneer u een bestand uploadt.
Verschillen tussen PUT en POST in REST API's
Hier is het belangrijke verschil tussen de PUT- en POST-methode:
PUT | POST |
---|---|
Deze methode is idempotent. | Deze methode is niet idempotent. |
De PUT-methode wordt aangeroepen wanneer u een enkele resource moet wijzigen, die al deel uitmaakt van de resourceverzameling. | De POST-methode wordt aangeroepen wanneer u een onderliggende bron moet toevoegen onder de verzameling van bronnen. |
RFC-2616 laat zien dat de PUT-methode een verzoek verzendt voor een ingesloten entiteit die is opgeslagen in de opgegeven verzoek-URI. | Deze methode vraagt de server om de entiteit te accepteren die in het verzoek is ingesloten. |
De syntaxis van de PUT-methode is PUT /vragen/{vraag-id} | De syntaxis van de POST-methode is POST /vragen |
U kunt antwoorden op de PUT-methode niet in de cache opslaan. | Het antwoord van de POST-methode kan in de cache worden opgeslagen. |
PUT /vi/juice/orders/1234 geeft aan dat u een bron bijwerkt die wordt geïdentificeerd door “1234”. | POST /vi/juice/orders geeft aan dat u een nieuwe bron aanmaakt en een ID retourneert om de bron te beschrijven. |
Als u hetzelfde verzoek meerdere keren verzendt, blijft het resultaat hetzelfde. | Als u hetzelfde POST-verzoek meerdere keren verzendt, ontvangt u verschillende resultaten. |
PUT werkt als specifiek. | POST werkt als abstract. |
We gebruiken de UPDATE-query in PUT. | We gebruiken een query maken in POST. |
Bij de PUT-methode beslist de client welke URI-bron moet hebben. | Bij de POST-methode beslist de server welke URI-bron moet hebben. |
Voorbeeld van PUT
Hier is het webservervoorbeeld van een PUT-methode:
HTTP PUT http://www.google.com/users/234
HTTP PUT http://www.google.com/users/234/accounts/567
Aanvraag
PUT /new.html HTTP/1.1 Host: example.com Content-type: text/html Content-length: 20 <p>New File</p>
Reacties
Als de doelbron een huidige representatie heeft en wordt gewijzigd met de status van de ingesloten representatie, dan zou de server twee antwoorden moeten sturen. De eerste antwoordcode is 200 (OK) en de tweede antwoordcode is 204 (Geen inhoud).
Als de doelbron geen representatie heeft, moet de server de gebruiker hiervan op de hoogte stellen door een 201-code (aangemaakt) antwoord te sturen.
HTTP/1.1 201 Created Content-Location: /new.html
Voorbeeld van POST
Hier is een voorbeeld van de POST-methode:
HTTP POST http://www.google.com/users
HTTP POST http://www.google.com/users/234/accounts
Een formulier dat het standaardinhoudstype application/x-www-form-urlencoded gebruikt:
POST /test HTTP/1.1 Host: abc.example Content-Type: application/x-www-form-urlencoded Content-Length: 40 field1=value1&field2=value2
Een API testen met PUT-verzoeken
Hier zijn de stappen om de API te testen met PUT-verzoeken:

Stap 1) Update bronnen met PUT-verzoek.
Stap 2) Gebruik de GET-methode voor de resource. Als het PUT-verzoek slaagt, ontvangt u nieuwe gegevens. Deze methode mislukt als de opgegeven gegevens in het verzoek ongeldig zijn. Daarom zal er niets worden bijgewerkt.
Een API testen met POST-verzoeken
Hier zijn de stappen om de API te testen met POST-verzoeken:

Stap 1) Maak een resource met behulp van een POST-verzoek en zorg ervoor dat deze de statuscode 200 retourneert.
Stap 2) Maak een GET-verzoek voor die bron en sla de gegevens in het juiste formaat op.
Stap 3) U moet tests toevoegen die ervoor zorgen dat POST-verzoeken mislukken met onjuiste gegevens.
Voordelen van de PUT-methode
Hier zijn de voor- en voordelen van het gebruik van de PUT-methode:
- Het helpt u om de opgegeven entiteit onder de opgegeven URI op te slaan
- Als de opgegeven entiteit al bestaat, kunt u de updatebewerking uitvoeren of een entiteit maken met die URI.
- U kunt een bron zo vaak maken als u wilt.
- Het maken van een bron met de PUT-methode is heel eenvoudig.
- U hoeft niet te controleren of de gebruiker meerdere keren op de verzendknop heeft geklikt of niet.
- Het kan de entiteit identificeren die bij het verzoek is gevoegd.
Voordelen van de POST-methode
Hier zijn de voor- en voordelen van het gebruik van de POST-methode:
- Met deze methode kunt u de resource-URI bepalen.
- Het opgeven van een nieuwe bronlocatieheader is heel eenvoudig met behulp van de locatieheader.
- U kunt een verzoek verzenden om de entiteit te accepteren als een nieuwe ondergeschikte van de resource, die wordt geïdentificeerd door de URI.
- U kunt door de gebruiker gegenereerde gegevens naar de webserver sturen.
- Het is erg handig als u de URL niet kent om een bron te behouden.
- Gebruik POST wanneer u de server nodig heeft, die de URL-generatie van uw bronnen beheert.
- POST is een veilige methode omdat de verzoeken ervan niet in de browsergeschiedenis blijven staan.
- U kunt moeiteloos een grote hoeveelheid gegevens per post verzenden.
- U kunt de gegevens privé houden.
- Deze methode kan worden gebruikt om zowel binaire als ASCII-gegevens te verzenden.