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.

Š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:
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:
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.