PUT vs POST: Koks skirtumas?

Kas yra PUT?

PUT metodas naudojamas atnaujinti išteklius, esančius serveryje. Paprastai tai, kas egzistuoja tiksliniame URL, pakeičia kažkuo kitu. Galite jį naudoti norėdami sukurti naują šaltinį arba perrašyti esamą. PUT prašo, kad uždaras subjektas turėtų būti saugomas pateiktame prašomame URI (Uniform Resource Identifier).

Šioje pamokoje sužinosite:

  • Kas yra PUT?
  • Kas yra POST?
  • PUT pavyzdys
  • POST pavyzdys
  • Skirtumas tarp PUT ir POST
  • API testavimas naudojant PUT užklausas
  • API testavimas naudojant POST užklausas
  • PUT metodo privalumai
  • POST metodo privalumai

Kas yra POST?

POST yra metodas, palaikomas HTTP ir

pavaizduota, kad žiniatinklio serveris priima duomenis, esančius prašomame pranešimo tekste. POST dažnai naudojamas žiniatinklyje siunčiant vartotojo sugeneruotus duomenis į žiniatinklio serverį arba kai įkeliate failą.

PAGRINDINIAI SKIRTUMAI:

  • PUT metodas iškviečiamas, kai turite modifikuoti vieną šaltinį, o POST metodas iškviečiamas, kai turite pridėti antrinį šaltinį.
  • PUT metodo atsakymą galima išsaugoti talpykloje, bet jūs negalite talpinti PUT metodo atsakymų.
  • Atnaujinti užklausą galite naudoti „PUT“, o kurti - „POST“.
  • Taikant PUT metodą, klientas nusprendžia, kurį URI šaltinį turėtų turėti, o POST metodu - serveris nusprendžia, kurį URI šaltinį turėtų turėti.
  • PUT veikia taip pat specifiškai, o POST - abstrakčiai.
  • Jei tą pačią PUT užklausą siųsite kelis kartus, rezultatas išliks toks pats, tačiau jei tą pačią POST užklausą siųsite kelis kartus, gausite skirtingus rezultatus.
  • PUT metodas nėra idempotentas, o POST metodas nėra idempotentas.

PUT pavyzdys

Čia yra žiniatinklio serverio PUT metodo pavyzdys:

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

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

Prašymas

PUT /new.html HTTP/1.1Host: example.comContent-type: text/htmlContent-length: 20

New File

Atsakymai

Jei tikslinis išteklius, turintis dabartinį atvaizdavimą, yra modifikuotas atsižvelgiant į uždaro atvaizdavimo būseną, tada serveris turėtų siųsti du atsakymus. Pirmasis atsakymo kodas yra 200 (gerai), o antrasis atsakymo kodas yra 204 (be turinio).

Jei tikslinis išteklius neturi jokio atvaizdavimo, serveris turėtų informuoti vartotoją atsiųsdamas atsakymą 201 kodas (Sukurtas).

 HTTP/1.1 201 CreatedContent-Location: /new.html

POST pavyzdys

Štai POST metodo pavyzdys:

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

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

Forma, kurioje naudojamas numatytasis „application / x-www-form-urlencoded“ turinio tipas:

POST /test HTTP/1.1Host: abc.exampleContent-Type: application/x-www-form-urlencodedContent-Length: 40field1=value1&field2=value2

Skirtumas tarp PUT ir POST

Čia yra svarbus skirtumas tarp PUT ir POST metodo:

ĮDĖK POST
Šis metodas yra idempotentas. Šis metodas nėra idempotentas.
PUT metodas yra iškvietimas, kai turite modifikuoti vieną šaltinį, kuris jau yra išteklių rinkimo dalis. POST metodas yra iškvietimas, kai prie išteklių rinkimo turite pridėti antrinį išteklių.
RFC-2616 pavaizduota, kad PUT metodas siunčia užklausą uždaram subjektui, saugomam pateiktame užklausos URI. Šis metodas reikalauja, kad serveris priimtų subjektą, kuris yra užklausoje.
PUT metodo sintaksė yra PUT / questions / {question-id} POST metodo sintaksė yra POST / klausimai
PUT metodo atsakymą galima išsaugoti talpykloje. Negalite talpinti PUT metodo atsakymų.
PUT / vi / juice / order / 1234 rodo, kad atnaujinate šaltinį, kurį žymi „1234“. POST / vi / juice / order rodo, kad kuriate naują šaltinį, ir grąžinkite identifikatorių, kuris apibūdintų šaltinį.
Jei tą pačią užklausą siųsite kelis kartus, rezultatas išliks toks pats. Jei tą pačią POST užklausą siųsite daugiau nei vieną kartą, gausite skirtingus rezultatus.
PUT veikia kaip specifinis. POST darbas abstraktus.
PUT naudojame UPDATE užklausą. Mes naudojame kūrimo užklausą POST.
Taikant PUT metodą, klientas nusprendžia, kurį URI šaltinį turėtų turėti. Taikant POST metodą, serveris nusprendžia, kurį URI šaltinį turėtų turėti.

API testavimas naudojant PUT užklausas

Šie veiksmai atliekami norint išbandyti API su PUT užklausomis:

API testavimas naudojant PUT užklausas

1 žingsnis. Atnaujinkite išteklius naudodami PUT užklausą.

2 žingsnis. Ištekliams naudokite GET metodą. Jei PUT užklausa bus sėkminga, gausite naujų duomenų. Šis metodas nepavyks, jei užklausoje pateikti duomenys yra neteisingi. Todėl jis nieko neatnaujins.

API testavimas naudojant POST užklausas

Šie veiksmai atliekami norint išbandyti API su POST užklausomis:

API testavimas naudojant POST užklausas

1 žingsnis. Sukurkite išteklių naudodami POST užklausą ir įsitikinkite, kad jis pateikia 200 būsenos kodą.

2 žingsnis. Pateikite GET užklausą tam ištekliui ir išsaugokite duomenis tinkamu formatu.

3 žingsnis) Turite pridėti bandymų, užtikrinančių, kad POST užklausos nepavyksta, jei duomenys neteisingi.

PUT metodo privalumai

Štai PUT metodo naudojimo privalumai / privalumai:

  • Tai padeda jums išsaugoti pateiktą objektą pagal pateiktą URI
  • Jei pateiktas objektas jau egzistuoja, galite atlikti naujinimo operaciją arba sukurti naudodami tą URI.
  • Galite sukurti išteklių tiek kartų, kiek norite.
  • Išteklių kūrimas naudojant PUT metodą yra labai lengvas.
  • Jums nereikia tikrinti, ar vartotojas kelis kartus spustelėjo mygtuką „Pateikti“, ar ne.
  • Jis gali identifikuoti subjektą, pridėtą prie užklausos.

POST metodo privalumai

Čia yra POST metodo naudojimo privalumai / privalumai:

  • Šis metodas padeda nustatyti išteklių URI.
  • Naudojant vietos antraštę, labai lengva nurodyti naują išteklių vietos antraštę.
  • Galite išsiųsti užklausą priimti objektą kaip naują šaltinį, kurį identifikuoja URI.
  • Galite siųsti vartotojo sugeneruotus duomenis į žiniatinklio serverį.
  • Tai labai naudinga, kai nežinote URL, kad išsaugotumėte išteklius.
  • Naudokite POST, kai jums reikia serverio, kuris valdo jūsų išteklių URL generavimą.
  • POST yra saugus metodas, nes jo užklausos nelieka naršyklės istorijoje.
  • Galite lengvai perduoti didelį duomenų kiekį naudodamiesi paštu.
  • Duomenis galite laikyti privačius.
  • Šis metodas gali būti naudojamas tiek dvejetainiams, tiek ASCII duomenims siųsti.

Įdomios straipsniai...