PUT vs POST – razlika između njih

Ključne razlike između PUT i POST

  • Metoda PUT se poziva kada morate modificirati jedan resurs, dok se metoda POST poziva kada morate dodati resurs dijete.
  • Odgovori POST metode mogu se predmemorirati, ali ne možete predmemorirati odgovore PUT metode.
  • Možete koristiti UPDATE upit u PUT-u, dok možete koristiti Create query u POST-u.
  • U PUT metodi klijent odlučuje koji URI resurs treba imati, a u POST metodi poslužitelj odlučuje koji URI resurs treba imati.
  • PUT radi kao specifičan, dok POST radi kao apstraktan.
  • Ako pošaljete isti PUT zahtjev više puta, rezultat će ostati isti, ali ako pošaljete isti POST zahtjev više puta, dobit ćete različite rezultate.
  • Metoda PUT je idempotentna, dok metoda POST nije idempotentna.
PUT vs POST
PUT vs POST

Što je PUT metoda?

Metoda PUT koristi se za ažuriranje resursa dostupnih na poslužitelju. Obično zamjenjuje sve što postoji na ciljnom URL-u nečim drugim. Možete ga koristiti za izradu novog izvora ili za brisanje postojećeg. PUT zahtijeva da se priloženi entitet mora pohraniti pod isporučenim traženim URI-jem (Uniform Resource Identifier).

Što je POST metoda?

POST je metoda koju podržavaju HTTP i

prikazuje da web poslužitelj prihvaća podatke uključene u tijelo poruke, koja se traži. POST se često koristi na World Wide Webu za slanje korisnički generiranih podataka na web poslužitelj ili kada učitate datoteku.

Razlike između PUT i POST u REST API-jima

Ovdje je važna razlika između PUT i POST metode:

PUT POST
Ova metoda je idempotentna. Ova metoda nije idempotentna.
Metoda PUT se poziva kada morate modificirati jedan resurs, koji je već dio kolekcije resursa. Metoda POST poziva se kada morate dodati podređeni resurs pod zbirku resursa.
RFC-2616 opisuje da metoda PUT šalje zahtjev za priloženi entitet pohranjen u dostavljenom URI-ju zahtjeva. Ova metoda zahtijeva od poslužitelja da prihvati entitet koji je priložen u zahtjevu.
Sintaksa metode PUT je PUT /pitanja/{id-pitanja} Sintaksa metode POST je POST /pitanja
Ne možete predmemorirati odgovore metode PUT. Odgovor metode POST može se spremiti u predmemoriju.
PUT /vi/juice/orders/1234 označava da ažurirate resurs koji je identificiran s "1234". POST /vi/juice/orders označava da stvarate novi resurs i vraća identifikator za opis resursa.
Ako isti zahtjev pošaljete više puta, rezultat će ostati isti. Ako isti POST zahtjev pošaljete više puta, dobit ćete različite rezultate.
PUT radi kao specifičan. POST rad kao apstraktan.
Koristimo upit UPDATE u PUT-u. Koristimo kreiranje upita u POST-u.
U PUT metodi, klijent odlučuje koji URI resurs treba imati. U POST metodi, poslužitelj odlučuje koji URI resurs treba imati.

Primjer PUT

Evo primjera PUT metode web poslužitelja:

HTTP PUT http://www.google.com/users/234

HTTP PUT http://www.google.com/users/234/accounts/567

Zatražite

PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 20

<p>New File</p>

Reakcija

Ako ciljni resurs ima trenutni prikaz i modificiran je stanjem priloženog prikaza, tada poslužitelj treba poslati dva odgovora. Prvi kod odgovora je 200 (OK), a drugi kod odgovora je 204 (Bez sadržaja).

Ako ciljni resurs nema nikakav prikaz, poslužitelj bi trebao obavijestiti korisnika slanjem odgovora koda 201 (Stvoreno).

 HTTP/1.1 201 Created
Content-Location: /new.html

Primjer POST-a

Evo primjera POST metode:

HTTP POST http://www.google.com/users

HTTP POST http://www.google.com/users/234/accounts

Obrazac koji koristi zadanu vrstu sadržaja application/x-www-form-urlencoded:

POST /test HTTP/1.1
Host: abc.example
Content-Type: application/x-www-form-urlencoded
Content-Length: 40

field1=value1&field2=value2

Testiranje API-ja s PUT zahtjevima

Evo koraka za testiranje API-ja s PUT zahtjevima:

Testiranje API-ja s PUT zahtjevima
Testiranje API-ja s PUT zahtjevima

Korak 1) Ažurirajte resurse s PUT zahtjevom.

Korak 2) Koristite metodu GET za resurs. Ako PUT zahtjev bude uspješan, primit ćete nove podatke. Ova metoda neće uspjeti ako su navedeni podaci u zahtjevu nevažeći. Stoga neće ništa ažurirati.

Testiranje API-ja s POST zahtjevima

Evo koraka za testiranje API-ja s POST zahtjevima:

Testiranje API-ja s POST zahtjevima

Testiranje API-ja s POST zahtjevima

Korak 1) Stvorite resurs pomoću POST zahtjeva i provjerite vraća li statusni kod 200.

Korak 2) Napravite GET zahtjev za taj resurs i spremite podatke u ispravnom formatu.

Korak 3) Morate dodati testove koji osiguravaju neuspjeh POST zahtjeva s netočnim podacima.

Prednosti PUT metode

Evo prednosti/prednosti korištenja PUT metode:

  • Pomaže vam da pohranite dostavljeni entitet pod dostavljenim URI-jem
  • Ako dostavljeni entitet već postoji, tada možete izvršiti operaciju ažuriranja ili možete kreirati s tim URI-jem.
  • Možete kreirati resurs koliko god puta želite.
  • Kreiranje resursa metodom PUT vrlo je jednostavno.
  • Ne morate provjeravati je li korisnik kliknuo gumb za slanje više puta ili ne.
  • Može identificirati entitet priložen uz zahtjev.

Prednosti POST metode

Evo prednosti/prednosti korištenja POST metode:

  • Ova metoda vam pomaže da odredite URI resursa.
  • Određivanje novog zaglavlja lokacije resursa vrlo je jednostavno pomoću zaglavlja lokacije.
  • Možete poslati zahtjev za prihvaćanje entiteta kao novog podređenog resursa, koji je identificiran URI-jem.
  • Možete slati podatke koje su generirali korisnici na web poslužitelj.
  • Vrlo je korisno kada ne znate URL za čuvanje bilo kojeg izvora.
  • Koristite POST kada trebate poslužitelj, koji kontrolira generiranje URL-a vaših resursa.
  • POST je sigurna metoda jer njeni zahtjevi ne ostaju u povijesti preglednika.
  • Putem pošte možete bez napora prenijeti veliku količinu podataka.
  • Možete zadržati privatnost podataka.
  • Ova se metoda može koristiti za slanje binarnih kao i ASCII podataka.