PUT vs POST: Vad är skillnaden?

Innehållsförteckning:

Anonim

Vad är PUT?

PUT-metoden används för att uppdatera resursen som är tillgänglig på servern. Vanligtvis ersätter det vad som finns på mål-URL med något annat. Du kan använda den för att skapa en ny resurs eller skriva över en befintlig. PUT begär att den slutna enheten måste lagras under den medföljande URI (Uniform Resource Identifier).

I den här handledningen lär du dig:

  • Vad är PUT?
  • Vad är POST?
  • Exempel på PUT
  • Exempel på POST
  • Skillnad mellan PUT och POST
  • Testar ett API med PUT-förfrågningar
  • Testar ett API med POST-förfrågningar
  • Fördelar med PUT-metoden
  • Fördelar med POST-metoden

Vad är POST?

POST är en metod som stöds av HTTP och

avbildar att en webbserver accepterar de data som ingår i meddelandets kropp, vilket begärs. POST används ofta av World Wide Web för att skicka användargenererad data till webbservern eller när du laddar upp en fil.

VÄSENTLIGA SKILLNADER:

  • PUT-metoden anropas när du måste ändra en enda resurs medan POST-metoden anropas när du måste lägga till en underresurs.
  • PUT-metodens svar kan cachas men du kan inte cacha PUT-metodens svar.
  • Du kan använda UPDATE-frågan i PUT medan du kan använda skapa frågan i POST.
  • I PUT-metoden bestämmer klienten vilken URI-resurs som ska ha, och i POST-metoden bestämmer servern vilken URI-resurs som ska ha.
  • PUT fungerar som specifikt medan POST fungerar som abstrakt.
  • Om du skickar samma PUT-begäran flera gånger förblir resultatet detsamma, men om du skickar samma POST-begäran flera gånger kommer du att få olika resultat.
  • PUT-metoden är idempotent medan POST-metoden inte är idempotent.

Exempel på PUT

Här är webbserverexemplet på en PUT-metod:

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

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

Begäran

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

New File

Svar

Om målresursen har aktuell representation och modifieras med tillståndet för den bifogade representationen, ska servern skicka två svar. Den första svarkoden är 200 (OK) och den andra svarkoden är 204 (Inget innehåll).

Om målresursen inte har någon representation, ska servern informera användaren genom att skicka ett 201-kod (skapat) svar.

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

Exempel på POST

Här är ett exempel på POST-metod:

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

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

Ett formulär som använder standardapplikationen / x-www-form-urlenkodad innehållstyp:

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

Skillnad mellan PUT och POST

Här är den viktiga skillnaden mellan PUT- och POST-metoden:

SÄTTA POSTA
Denna metod är idempotent. Denna metod är inte idempotent.
PUT-metoden är anrop när du måste ändra en enda resurs, som redan är en del av resursinsamlingen. POST-metoden är anrop när du måste lägga till en underresurs under resursinsamlingen.
RFC-2616 visar att PUT-metoden skickar en begäran om en sluten enhet lagrad i den medföljande URI: n. Den här metoden uppmanar servern att acceptera den enhet som ingår i begäran.
PUT-metodens syntax är PUT / frågor / {fråga-id} POST-metodens syntax är POST / frågor
PUT-metodens svar kan cachas. Du kan inte cacha PUT-metodens svar.
PUT / vi / juice / orders / 1234 indikerar att du uppdaterar en resurs som identifieras med "1234". POST / vi / juice / order indikerar att du skapar en ny resurs och returnerar en identifierare för att beskriva resursen.
Om du skickar samma begäran flera gånger förblir resultatet detsamma. Om du skickar samma POST-begäran mer än en gång får du olika resultat.
PUT fungerar som specifikt. POST fungerar som abstrakt.
Vi använder UPDATE-frågan i PUT. Vi använder skapa frågan i POST.
I PUT-metoden bestämmer klienten vilken URI-resurs som ska ha. I POST-metoden bestämmer servern vilken URI-resurs som ska ha.

Testar ett API med PUT-förfrågningar

Här är stegen för att testa API med PUT-förfrågningar:

Testar ett API med PUT-förfrågningar

Steg 1) Uppdatera resurser med PUT-begäran.

Steg 2) Använd GET-metoden för resurs. Om PUT-begäran lyckas kommer du att få nya data. Den här metoden misslyckas om de angivna uppgifterna i begäran är ogiltiga. Därför kommer den inte att uppdatera någonting.

Testar ett API med POST-förfrågningar

Här är stegen för att testa API med POST-förfrågningar:

Testar ett API med POST-förfrågningar

Steg 1) Skapa en resurs med hjälp av POST-begäran och se till att den returnerar 200 statuskod.

Steg 2) Gör en GET-begäran för den resursen och spara data i rätt format.

Steg 3) Du måste lägga till tester som säkerställer att POST-förfrågningar misslyckas med felaktiga data.

Fördelar med PUT-metoden

Här är fördelar / fördelar med att använda PUT-metoden:

  • Det hjälper dig att lagra den levererade enheten under den medföljande URI
  • Om den levererade enheten redan existerar kan du utföra uppdateringsåtgärden eller skapa med den URI.
  • Du kan skapa en resurs så många gånger du vill.
  • Det är väldigt enkelt att skapa en resurs med PUT-metoden.
  • Du behöver inte kontrollera om användaren har klickat på knappen Skicka flera gånger eller inte.
  • Det kan identifiera den enhet som bifogas begäran.

Fördelar med POST-metoden

Här är fördelar / fördelar med att använda POST-metoden:

  • Denna metod hjälper dig att bestämma resurs-URI.
  • Att ange en ny resursplaceringsrubrik är väldigt enkelt med platsrubrik.
  • Du kan skicka en begäran om att acceptera enheten som en ny underordnad av resursen, vilket identifieras av URI.
  • Du kan skicka användargenererad data till webbservern.
  • Det är mycket användbart när du inte känner till URL för att behålla någon resurs.
  • Använd POST när du behöver servern, som styr URL-generering av dina resurser.
  • POST är en säker metod eftersom dess förfrågningar inte finns kvar i webbläsarhistoriken.
  • Du kan enkelt överföra en stor mängd data med posten.
  • Du kan hålla uppgifterna privata.
  • Denna metod kan användas för att skicka binär såväl som ASCII-data.