PUT vs POST – különbség köztük
Főbb különbségek a PUT és a POST között
- A PUT metódus akkor hívódik meg, ha egyetlen erőforrást kell módosítania, míg a POST metódust akkor hívja meg, ha gyermek erőforrást kell hozzáadnia.
- A POST metódus válaszai gyorsítótárazhatók, de a PUT metódus válaszai nem.
- Használhatja az UPDATE lekérdezést a PUT-ban, míg a Create lekérdezést a POST-ban.
- A PUT metódusban az ügyfél dönti el, hogy melyik URI-erőforrással rendelkezzen, a POST-módszerben pedig a szerver dönti el, hogy melyik URI-erőforrás legyen.
- A PUT specifikusként működik, míg a POST absztraktként működik.
- Ha többször küldi el ugyanazt a PUT kérést, az eredmény ugyanaz marad, de ha többször is elküldi ugyanazt a POST kérést, akkor eltérő eredményeket kap.
- A PUT metódus idempotens, míg a POST metódus nem idempotens.

Mi az a PUT módszer?
A PUT metódus a szerveren elérhető erőforrás frissítésére szolgál. Általában lecseréli a cél URL-címen létezőt valami másra. Használhatja új erőforrás létrehozására vagy egy meglévő felülírására. A PUT azt kéri, hogy a zárt entitást a megadott kért URI (Uniform Resource Identifier) alatt kell tárolni.
Mi az a POST módszer?
A POST egy módszer, amelyet a HTTP és a
azt ábrázolja, hogy egy webszerver elfogadja a kért üzenet törzsében szereplő adatokat. A World Wide Web gyakran a POST-ot használja arra, hogy a felhasználók által generált adatokat küldje el a webszervernek, vagy amikor fájlt tölt fel.
A PUT és a POST közötti különbségek a REST API-kban
Itt van a fontos különbség a PUT és a POST metódus között:
PUT | POST |
---|---|
Ez a módszer idempotens. | Ez a módszer nem idempotens. |
A PUT metódus hívás, amikor egyetlen erőforrást kell módosítania, amely már az erőforrásgyűjtés része. | A POST metódus egy hívás, amikor egy alárendelt erőforrást kell hozzáadnia az erőforrásgyűjteményhez. |
Az RFC-2616 azt mutatja, hogy a PUT metódus kérelmet küld a megadott kérelem URI-ban tárolt zárt entitásra. | Ez a metódus arra kéri a szervert, hogy fogadja el a kérésbe foglalt entitást. |
A PUT metódus szintaxisa: PUT /questions/{question-id} | A POST metódus szintaxisa a POST /questions |
A PUT metódus válaszait nem lehet gyorsítótárba helyezni. | A POST metódus válasza gyorsítótárazható. |
A PUT /vi/juice/orders/1234 azt jelzi, hogy egy „1234”-gyel azonosított erőforrást frissít. | A /vi/juice/orders POST azt jelzi, hogy új erőforrást hoz létre, és egy azonosítót ad vissza az erőforrás leírásához. |
Ha ugyanazt a kérést többször elküldi, az eredmény ugyanaz marad. | Ha egynél többször küldi el ugyanazt a POST kérést, akkor eltérő eredményeket kap. |
A PUT specifikusan működik. | POST munka, mint absztrakt. |
UPDATE lekérdezést használunk a PUT-ban. | Lekérdezés létrehozását használjuk a POST-ban. |
A PUT metódusban az ügyfél dönti el, hogy melyik URI-erőforrással rendelkezzen. | A POST metódusban a szerver dönti el, hogy melyik URI-erőforrással rendelkezzen. |
Példa a PUT-ra
Íme a PUT metódus webszerver példája:
HTTP PUT http://www.google.com/users/234
HTTP PUT http://www.google.com/users/234/accounts/567
Kérjen
PUT /new.html HTTP/1.1 Host: example.com Content-type: text/html Content-length: 20 <p>New File</p>
Válaszok
Ha az aktuális reprezentációval rendelkező célerőforrás a zárt reprezentáció állapotával módosul, akkor a szervernek két választ kell küldenie. Az első válaszkód 200 (OK), a második válaszkód pedig 204 (nincs tartalom).
Ha a cél erőforrás nem rendelkezik reprezentációval, akkor a kiszolgálónak 201-es kód (Létrehozva) válasz küldésével tájékoztatnia kell a felhasználót.
HTTP/1.1 201 Created Content-Location: /new.html
Példa a POST-ra
Íme egy példa a POST módszerre:
HTTP POST http://www.google.com/users
HTTP POST http://www.google.com/users/234/accounts
Az alapértelmezett alkalmazás/x-www-form-urlencoded tartalomtípust használó űrlap:
POST /test HTTP/1.1 Host: abc.example Content-Type: application/x-www-form-urlencoded Content-Length: 40 field1=value1&field2=value2
API tesztelése PUT-kérésekkel
Íme az API tesztelésének lépései PUT-kérésekkel:

Step 1) Frissítse az erőforrásokat PUT kéréssel.
Step 2) Használja a GET módszert erőforrásként. Ha a PUT kérés sikeres, új adatokat fog kapni. Ez a módszer sikertelen lesz, ha a kérésben megadott adatok érvénytelenek. Ezért nem frissít semmit.
API tesztelése POST-kérésekkel
Íme az API tesztelésének lépései POST-kérésekkel:

Step 1) Hozzon létre egy erőforrást POST-kéréssel, és győződjön meg arról, hogy az 200-as állapotkódot ad vissza.
Step 2) Készítsen GET-kérést az erőforráshoz, és mentse el az adatokat a megfelelő formátumban.
Step 3) Hozzá kell adnia olyan teszteket, amelyek biztosítják, hogy a POST kérések hibás adatokkal meghiúsuljanak.
A PUT módszer előnyei
Íme a PUT módszer használatának előnyei/előnyei:
- Segít a biztosított entitás tárolásában a mellékelt URI alatt
- Ha a megadott entitás már létezik, akkor végrehajthatja a frissítési műveletet, vagy létrehozhat ezzel az URI-vel.
- Annyiszor hozhat létre erőforrást, ahányszor csak akar.
- Az erőforrás létrehozása PUT metódussal nagyon egyszerű.
- Nem kell ellenőriznie, hogy a felhasználó többször rákattintott-e a küldés gombra vagy sem.
- Azonosítani tudja a kérelemhez mellékelt entitást.
A POST módszer előnyei
Íme a POST módszer használatának előnyei/előnyei:
- Ez a módszer segít az erőforrás-URI meghatározásában.
- Új erőforrás-helyfejléc megadása nagyon egyszerű a helyfejléc használatával.
- Kérelmet küldhet az entitás elfogadására az erőforrás új alárendeltjeként, amelyet az URI azonosít.
- Felhasználó által generált adatokat küldhet a webszervernek.
- Nagyon hasznos, ha nem ismeri az URL-t az erőforrások megtartásához.
- Használja a POST-ot, amikor szüksége van a szerverre, amely vezérli az erőforrások URL generálását.
- A POST egy biztonságos módszer, mivel kérései nem maradnak meg a böngésző előzményeiben.
- A posta segítségével könnyedén továbbíthat nagy mennyiségű adatot.
- Az adatokat bizalmasan kezelheti.
- Ezzel a módszerrel bináris és ASCII adatok is küldhetők.