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 spesifikt, mens POST fungerer som abstrakt.
- 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 ressurs tilgjengelig på serveren. Vanligvis erstatter den det som finnes på mål-URLen med noe annet. Du kan bruke den til å lage en ny ressurs eller overskrive en eksisterende. PUT ber om at den vedlagte enheten må lagres under den oppgitte forespurte URI (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. | POST-arbeid som abstrakt. |
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 for å beholde noen ressurs.
- Bruk POST når du trenger serveren, som kontrollerer URL-generering av ressursene dine.
- POST er en sikker metode siden forespørslene ikke forblir i nettleserloggen.
- Du kan enkelt overføre en stor mengde data ved å bruke post.
- Du kan holde dataene private.
- Denne metoden kan brukes til å sende binære så vel som ASCII-data.