PUT vs POST: kāda ir atšķirība?

Satura rādītājs:

Anonim

Kas ir PUT?

PUT metodi izmanto, lai atjauninātu serverī pieejamo resursu. Parasti visu, kas pastāv mērķa URL, tas aizstāj ar kaut ko citu. Jūs varat to izmantot, lai izveidotu jaunu resursu vai pārrakstītu esošu. PUT pieprasa, lai pievienotā entītija būtu jāuzglabā zem pieprasītā URI (Uniform Resource Identifier).

Šajā apmācībā jūs uzzināsiet:

  • Kas ir PUT?
  • Kas ir POST?
  • PUT piemērs
  • POST piemērs
  • Atšķirība starp PUT un POST
  • API testēšana ar PUT pieprasījumiem
  • API testēšana ar POST pieprasījumiem
  • PUT metodes priekšrocības
  • POST metodes priekšrocības

Kas ir POST?

POST ir metode, kuru atbalsta HTTP un

attēlo, ka tīmekļa serveris pieņem pieprasītos ziņojuma pamattekstā iekļautos datus. POST bieži izmanto tīmeklī, lai nosūtītu lietotāju ģenerētus datus uz tīmekļa serveri vai augšupielādējot failu.

GALVENĀS ATŠĶIRĪBAS:

  • PUT metode tiek izsaukta, ja jums ir jāmaina viens resurss, savukārt POST metode tiek izsaukta, kad jums jāpievieno pakārtotais resurss.
  • PUT metodes atbildi var saglabāt kešatmiņā, taču nevarat saglabāt kešatmiņā PUT metodes atbildes.
  • PUT var izmantot UPDATE vaicājumu, savukārt POST - vaicājuma izveide.
  • PUT metodē klients izlemj, kuram URI resursam vajadzētu būt, un POST metodē serveris izlemj, kuram URI resursam vajadzētu būt.
  • PUT darbojas tikpat specifiski, bet POST - abstrakti.
  • Ja vienu un to pašu PUT pieprasījumu nosūtīsit vairākas reizes, rezultāts paliks nemainīgs, bet, ja vienu un to pašu POST pieprasījumu nosūtīsit vairākas reizes, jūs saņemsit atšķirīgus rezultātus.
  • PUT metode ir idempotenta, savukārt POST metode nav idempotenta.

PUT piemērs

Šeit ir tīmekļa servera PUT metodes piemērs:

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

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

Pieprasījums

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

New File

Atbildes

Ja mērķa resursam ir pašreizējais attēlojums un tas tiek modificēts ar pievienotā attēlojuma stāvokli, serverim jāsūta divas atbildes. Pirmais atbildes kods ir 200 (Labi), un otrais atbildes kods ir 204 (Bez satura).

Ja mērķa resursam nav attēlojuma, serverim par to jāinformē lietotājs, nosūtot atbildi ar 201 kodu (Izveidots).

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

POST piemērs

Šeit ir POST metodes piemērs:

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

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

Veidlapa, kurā tiek izmantots noklusējuma lietojumprogrammas / x-www-form-urlencoded satura tips:

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

Atšķirība starp PUT un POST

Šeit ir svarīga atšķirība starp PUT un POST metodi:

PUT POST
Šī metode ir idempotenta. Šī metode nav idempotenta.
PUT metode ir izsaukums, kad jums ir jāpārveido viens resurss, kas jau ir resursu kolekcijas sastāvdaļa. POST metode ir izsaukums, kad resursu kolekcijā jāpievieno bērnu resurss.
RFC-2616 attēlo, ka metode PUT nosūta pieprasījumu par slēgtu entītiju, kas saglabāta piegādātajā pieprasījuma URI. Šī metode pieprasa serverim pieņemt entītiju, kas ir iekļauta pieprasījumā.
PUT metodes sintakse ir PUT / questions / {question-id} POST metodes sintakse ir POST / jautājumi
PUT metodes atbildi var saglabāt kešatmiņā. Jūs nevarat saglabāt kešatmiņā PUT metodes atbildes.
PUT / vi / juice / order / 1234 norāda, ka jūs atjaunināt resursu, kuru apzīmē ar "1234". POST / vi / sula / pasūtījumi norāda, ka jūs veidojat jaunu resursu un atgriežat identifikatoru, lai aprakstītu resursu.
Ja vienu un to pašu pieprasījumu nosūtāt vairākas reizes, rezultāts paliks nemainīgs. Ja vienu un to pašu POST pieprasījumu nosūtāt vairāk nekā vienu reizi, jūs saņemsit atšķirīgus rezultātus.
PUT darbojas kā specifisks. POST darbs ir abstrakts.
Mēs PUT izmantojam UPDATE vaicājumu. Mēs izmantojam izveidot vaicājumu POST.
PUT metodē klients izlemj, kuram URI resursam jābūt. POST metodē serveris izlemj, kuram URI resursam jābūt.

API testēšana ar PUT pieprasījumiem

Šeit ir norādītas darbības, lai pārbaudītu API ar PUT pieprasījumiem:

API testēšana ar PUT pieprasījumiem

1. darbība. Atjauniniet resursus, izmantojot PUT pieprasījumu.

2. solis. Resursam izmantojiet GET metodi. Ja PUT pieprasījums būs veiksmīgs, jūs saņemsit jaunus datus. Šī metode neizdosies, ja pieprasījumā norādītie dati nav derīgi. Tāpēc tas neko neatjauninās.

API testēšana ar POST pieprasījumiem

Lai pārbaudītu API ar POST pieprasījumiem, veiciet šādas darbības:

API testēšana ar POST pieprasījumiem

1. darbība. Izveidojiet resursu, izmantojot POST pieprasījumu, un pārliecinieties, vai tas atgriež 200 statusa kodu.

2. solis. Veiciet GET pieprasījumu šim resursam un saglabājiet datus pareizajā formātā.

3. solis. Jums jāpievieno testi, kas nodrošina, ka POST pieprasījumi neizdodas ar nepareiziem datiem.

PUT metodes priekšrocības

Šeit ir PUT metodes izmantošanas plusi / priekšrocības:

  • Tas palīdz uzglabāt piegādāto entītiju zem komplektācijā esošā URI
  • Ja piegādātais entītijs jau pastāv, varat veikt atjaunināšanas darbību vai izveidot ar šo URI.
  • Resursu varat izveidot tik reižu, cik vēlaties.
  • Resursa izveide ar PUT metodi ir ļoti vienkārša.
  • Jums nav jāpārbauda, ​​vai lietotājs vairākas reizes ir noklikšķinājis uz pogas Iesniegt.
  • Tas var identificēt pieprasījumam pievienoto entītiju.

POST metodes priekšrocības

Šeit ir plusi / priekšrocības, izmantojot POST metodi:

  • Šī metode palīdz noteikt resursu URI.
  • Izmantojot atrašanās vietas galveni, ir ļoti viegli norādīt jaunu resursa atrašanās vietas galveni.
  • Jūs varat nosūtīt pieprasījumu pieņemt entītiju kā jaunu resursa pakļautību, kuru identificē URI.
  • Jūs varat nosūtīt lietotāju ģenerētus datus uz tīmekļa serveri.
  • Tas ir ļoti noderīgi, ja nezināt URL, lai saglabātu resursus.
  • Izmantojiet POST, kad jums nepieciešams serveris, kas kontrolē jūsu resursu URL ģenerēšanu.
  • POST ir droša metode, jo tās pieprasījumi nepaliek pārlūkprogrammas vēsturē.
  • Izmantojot pastu, bez piepūles varat pārsūtīt lielu datu apjomu.
  • Datus varat saglabāt privātus.
  • Šo metodi var izmantot bināro, kā arī ASCII datu nosūtīšanai.