PUT vs POST – Skillnaden mellan dem
Nyckelskillnader mellan PUT och POST
- PUT-metoden anropas när du måste ändra en enskild resurs, medan POST-metoden anropas när du måste lägga till en underordnad resurs.
- POST-metodens svar kan cachelagras, 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-förfrågan flera gånger förblir resultatet detsamma, men om du skickar samma POST-förfrågan flera gånger får du olika resultat.
- PUT-metoden är idempotent, medan POST-metoden inte är idempotent.

Vad är PUT-metoden?
PUT-metoden används för att uppdatera resurs tillgänglig på servern. Vanligtvis ersätter det allt som finns på måladressen 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 bifogade enheten måste lagras under den tillhandahållna begärda URI (Uniform Resource Identifier).
Vad är POST-metoden?
POST är en metod som stöds av HTTP och
visar att en webbserver accepterar de uppgifter som ingår i meddelandets brödtext, som efterfrågas. 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.
Skillnader mellan PUT och POST i REST API:er
Här är den viktiga skillnaden mellan PUT- och POST-metoden:
SÄTTA | POST |
---|---|
Denna metod är idempotent. | Denna metod är inte idempotent. |
PUT-metoden är anrop när du måste ändra en enskild resurs, som redan är en del av resursinsamlingen. | POST-metoden är anrop när du måste lägga till en underordnad resurs under resursinsamling. |
RFC-2616 visar att PUT-metoden skickar en begäran om en innesluten enhet lagrad i den tillhandahållna begäran-URI. | Denna metod begär att servern accepterar den enhet som är innesluten i begäran. |
PUT-metodens syntax är PUT /questions/{question-id} | POST-metodens syntax är POST /questions |
Du kan inte cachelagra PUT-metodens svar. | POST-metodens svar kan cachelagras. |
PUT /vi/juice/orders/1234 indikerar att du uppdaterar en resurs som identifieras med "1234". | POST /vi/juice/orders 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-förfrågan mer än en gång får du olika resultat. |
PUT fungerar som specifik. | POST-arbete som abstrakt. |
Vi använder UPDATE-fråga i PUT. | Vi använder skapa sökfråga 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. |
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
FÖRFRÅGAN
PUT /new.html HTTP/1.1 Host: example.com Content-type: text/html Content-length: 20 <p>New File</p>
Responser
Om målresursen har aktuell representation och modifieras med tillståndet för den bifogade representationen, bör servern skicka två svar. Den första svarskoden är 200 (OK) och den andra svarskoden är 204 (Inget innehåll).
Om målresursen inte har någon representation, bör servern informera användaren genom att skicka ett 201-kodsvar (skapat).
HTTP/1.1 201 Created Content-Location: /new.html
Exempel på POST
Här är ett exempel på POST-metoden:
HTTP POST http://www.google.com/users
HTTP POST http://www.google.com/users/234/accounts
Ett formulär som använder standardinnehållstypen application/x-www-form-urlencoded:
POST /test HTTP/1.1 Host: abc.example Content-Type: application/x-www-form-urlencoded Content-Length: 40 field1=value1&field2=value2
Testar ett API med PUT-förfrågningar
Här är stegen för att testa 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å ny data. Denna metod kommer att 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:

Steg 1) Skapa en resurs med POST-begäran och se till att den returnerar 200-statuskod.
Steg 2) Gör en GET-förfrågan 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 felaktig 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 medföljande enheten under den medföljande URI:n
- Om den angivna enheten redan finns kan du utföra uppdateringsåtgärden, eller så kan du skapa med den URI:n.
- Du kan skapa en resurs så många gånger du vill.
- Att skapa en resurs med PUT-metoden är mycket enkelt.
- Du behöver inte kontrollera om användaren har klickat på knappen Skicka flera gånger eller inte.
- Den 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:
- Den här metoden hjälper dig att bestämma resurs-URI.
- Att ange en ny resursplatsrubrik är mycket lätt med platsrubrik.
- Du kan skicka en begäran om att acceptera entiteten som en ny underordnad till resursen, som identifieras av URI:n.
- Du kan skicka användargenererad data till webbservern.
- Det är mycket användbart när du inte vet URL för att behålla någon resurs.
- Använd POST när du behöver servern, som styr URL-genereringen 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 post.
- Du kan hålla uppgifterna privata.
- Denna metod kan användas för att skicka både binära data och ASCII-data.