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.
PUT vs POST
PUT vs POST

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:

Tester en API med PUT-forespørsler
Tester et 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:

Tester et API med POST-forespørsler

Tester et 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.