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

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:

API tesztelése PUT-kérésekkel
API tesztelése 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:

API tesztelése POST-kérésekkel

API tesztelése 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.