PUT vs POST - Forskjellen mellom dem
Nรธkkelforskjeller mellom PUT og POST
- PUT-metoden kalles nรฅr du mรฅ endre en enkelt ressurs, mens POST-metoden kalles nรฅr du mรฅ legge til en underressurs.
- POST-metodesvar kan bufres, men du kan ikke bufre PUT-metodesvar.
- Du kan bruke UPDATE-spรธrring i PUT, mens du kan bruke opprette-spรธrring i POST.
- I PUT-metoden bestemmer klienten hvilken URI-ressurs som skal ha, og i POST-metoden bestemmer serveren hvilken URI-ressurs som skal ha.
- PUT fungerer som spesifikk, mens POST fungerer som magemusklertract.
- Hvis du sender samme PUT-forespรธrsel flere ganger, vil resultatet forbli det samme, men hvis du sender samme POST-forespรธrsel flere ganger, vil du motta forskjellige resultater.
- PUT-metoden er idempotent, mens POST-metoden ikke er idempotent.

Hva er PUT-metoden?
PUT-metoden brukes til รฅ oppdatere ressurser som er tilgjengelige pรฅ serveren. Vanligvis erstatter den det som finnes pรฅ mรฅlet. URL med noe annet. Du kan bruke den til รฅ opprette en ny ressurs eller overskrive en eksisterende. PUT ber om at den omsluttede enheten mรฅ lagres under den oppgitte forespurte URI-en (Uniform Resource Identifier).
Hva er POST-metoden?
POST er en metode som stรธttes av HTTP og
viser at en webserver godtar dataene som er inkludert i meldingen, som er forespurt. POST brukes ofte av World Wide Web for รฅ sende brukergenererte data til webserveren eller nรฅr du laster opp fil.
Forskjeller mellom PUT og POST i REST APIer
Her er den viktige forskjellen mellom PUT- og POST-metoden:
| PUT | POST |
|---|---|
| Denne metoden er idempotent. | Denne metoden er ikke idempotent. |
| PUT-metoden er anrop nรฅr du mรฅ endre en enkelt ressurs, som allerede er en del av ressursinnsamlingen. | POST-metoden er anrop nรฅr du mรฅ legge til en underressurs under ressurssamling. |
| RFC-2616 viser at PUT-metoden sender en forespรธrsel for en vedlagt enhet lagret i den oppgitte forespรธrsels-URIen. | Denne metoden ber serveren om รฅ godta enheten som er vedlagt forespรธrselen. |
| PUT-metodens syntaks er PUT /questions/{question-id} | POST-metodens syntaks er POST /questions |
| Du kan ikke bufre PUT-metodesvar. | POST-metodesvar kan bufres. |
| PUT /vi/juice/orders/1234 indikerer at du oppdaterer en ressurs som er identifisert med "1234". | POST /vi/juice/orders indikerer at du oppretter en ny ressurs og returnerer en identifikator for รฅ beskrive ressursen. |
| Hvis du sender samme forespรธrsel flere ganger, vil resultatet forbli det samme. | Hvis du sender den samme POST-forespรธrselen mer enn รฉn gang, vil du motta forskjellige resultater. |
| PUT fungerer som spesifikt. | ETTER-arbeid som magemuskeltract. |
| Vi bruker UPDATE-spรธrring i PUT. | Vi bruker opprette spรธrring i POST. |
| I PUT-metoden bestemmer klienten hvilken URI-ressurs som skal ha. | I POST-metoden bestemmer serveren hvilken URI-ressurs som skal ha. |
Eksempel pรฅ PUT
Her er webservereksemplet pรฅ en PUT-metode:
HTTP PUT http://www.google.com/users/234
HTTP PUT http://www.google.com/users/234/accounts/567
Be
PUT /new.html HTTP/1.1 Host: example.com Content-type: text/html Content-length: 20 <p>New File</p>
Svar
Hvis mรฅlressursen har gjeldende representasjon og er modifisert med tilstanden til den vedlagte representasjonen, bรธr serveren sende to svar. Den fรธrste svarkoden er 200 (OK), og den andre svarkoden er 204 (Ingen innhold).
Hvis mรฅlressursen ikke har noen representasjon, bรธr serveren informere brukeren ved รฅ sende et 201-kode (opprettet) svar.
HTTP/1.1 201 Created Content-Location: /new.html
Eksempel pรฅ POST
Her er et eksempel pรฅ POST-metoden:
HTTP POST http://www.google.com/users
HTTP POST http://www.google.com/users/234/accounts
Et skjema som bruker standard applikasjon/x-www-form-urlencoded innholdstype:
POST /test HTTP/1.1 Host: abc.example Content-Type: application/x-www-form-urlencoded Content-Length: 40 field1=value1&field2=value2
Tester et API med PUT-forespรธrsler
Her er trinnene for รฅ teste API med PUT-forespรธrsler:

Trinn 1) Oppdater ressurser med PUT-forespรธrsel.
Trinn 2) Bruk GET-metoden for ressurs. Hvis PUT-forespรธrselen lykkes, vil du motta nye data. Denne metoden vil mislykkes hvis de oppgitte dataene i forespรธrselen er ugyldige. Derfor vil den ikke oppdatere noe.
Tester et API med POST-forespรธrsler
Her er trinnene for รฅ teste API med POST-forespรธrsler:
Trinn 1) Opprett en ressurs ved รฅ bruke POST-forespรธrsel og sรธrg for at den returnerer 200 statuskode.
Trinn 2) Lag en GET-forespรธrsel for den ressursen og lagre dataene i riktig format.
Trinn 3) Du mรฅ legge til tester som sikrer at POST-forespรธrsler mislykkes med feil data.
Fordeler med PUT-metoden
Her er fordeler/fordeler med รฅ bruke PUT-metoden:
- Det hjelper deg รฅ lagre den medfรธlgende enheten under den medfรธlgende URIen
- Hvis den oppgitte enheten allerede eksisterer, kan du utfรธre oppdateringsoperasjonen, eller du kan opprette med den URIen.
- Du kan opprette en ressurs sรฅ mange ganger du vil.
- Det er veldig enkelt รฅ lage en ressurs med PUT-metoden.
- Du trenger ikke sjekke om brukeren har klikket pรฅ send-knappen flere ganger eller ikke.
- Den kan identifisere enheten som er vedlagt forespรธrselen.
Fordeler med POST-metoden
Her er fordeler/fordeler med รฅ bruke POST-metoden:
- Denne metoden hjelper deg med รฅ bestemme ressurs-URI.
- Det er veldig enkelt รฅ spesifisere en ny ressursposisjonsoverskrift ved รฅ bruke plasseringshode.
- Du kan sende en forespรธrsel om รฅ godta enheten som en ny underordnet ressurs, som identifiseres av URI.
- Du kan sende brukergenererte data til webserveren.
- Det er veldig nyttig nรฅr du ikke vet URL รฅ beholde enhver ressurs.
- Bruk POST nรฅr du trenger serveren, som styrer URL generering av ressursene dine.
- POST er en sikker metode siden forespรธrslene ikke forblir i nettleserloggen.
- Du kan enkelt transmit en stor mengde data ved hjelp av post.
- Du kan holde dataene private.
- Denne metoden kan brukes til รฅ sende binรฆre sรฅ vel som ASCII-data.
