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

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:

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 รฅ 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.

Oppsummer dette innlegget med: