PUT vs POST – rozdíl mezi nimi

Klíčové rozdíly mezi PUT a POST

  • Metoda PUT se volá, když musíte upravit jeden zdroj, zatímco metoda POST se volá, když musíte přidat podřízený zdroj.
  • Odpovědi metody POST lze uložit do mezipaměti, ale odpovědi metody PUT do mezipaměti nelze uložit.
  • Můžete použít UPDATE dotaz v PUT, zatímco můžete použít vytvořit dotaz v POST.
  • V metodě PUT se klient rozhodne, který zdroj URI by měl mít, a v metodě POST server rozhodne, který zdroj URI by měl mít.
  • PUT funguje jako specifické, zatímco POST funguje jako abstraktní.
  • Pokud stejný požadavek PUT odešlete vícekrát, výsledek zůstane stejný, ale pokud stejný požadavek POST odešlete vícekrát, obdržíte různé výsledky.
  • Metoda PUT je idempotentní, zatímco metoda POST není idempotentní.
PUT vs POST
PUT vs POST

Co je metoda PUT?

Metoda PUT se používá k aktualizaci prostředků dostupných na serveru. Obvykle nahradí vše, co existuje na cílové adrese URL, něčím jiným. Můžete jej použít k vytvoření nového zdroje nebo k přepsání stávajícího. PUT požaduje, aby byla uzavřená entita uložena pod dodaným požadovaným URI (Uniform Resource Identifier).

Co je metoda POST?

POST je metoda, která je podporována protokolem HTTP a

znázorňuje, že webový server přijímá data obsažená v těle zprávy, která je požadována. POST často používá World Wide Web k odesílání dat generovaných uživateli na webový server nebo při nahrávání souboru.

Rozdíly mezi PUT a POST v REST API

Zde je důležitý rozdíl mezi metodou PUT a POST:

PUT POST
Tato metoda je idempotentní. Tato metoda není idempotentní.
Metoda PUT je volání, když musíte upravit jeden zdroj, který je již součástí kolekce zdrojů. Metoda POST je volání, když musíte přidat podřízený prostředek pod kolekci zdrojů.
RFC-2616 popisuje, že metoda PUT posílá požadavek na uzavřenou entitu uloženou v dodaném URI požadavku. Tato metoda vyžaduje, aby server přijal entitu, která je v požadavku uzavřena.
Syntaxe metody PUT je PUT /questions/{question-id} Syntaxe metody POST je POST /otázky
Odpovědi metody PUT nelze uložit do mezipaměti. Odpověď metody POST lze uložit do mezipaměti.
PUT /vi/juice/orders/1234 označuje, že aktualizujete zdroj, který je označen „1234“. POST /vi/juice/orders označuje, že vytváříte nový zdroj a vracíte identifikátor pro popis zdroje.
Pokud stejnou žádost odešlete vícekrát, výsledek zůstane stejný. Pokud stejnou žádost POST odešlete více než jednou, obdržíte různé výsledky.
PUT funguje jako specifické. POST práce jako abstrakt.
V PUT používáme dotaz UPDATE. V POST používáme vytvořit dotaz.
V metodě PUT se klient rozhodne, který zdroj URI by měl mít. V metodě POST server rozhodne, který zdroj URI by měl mít.

Příklad PUT

Zde je příklad webového serveru metody PUT:

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

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

Žádost

PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 20

<p>New File</p>

Odpovědi

Pokud má cílový zdroj aktuální reprezentaci a je upraven podle stavu uzavřené reprezentace, pak by měl server odeslat dvě odpovědi. První kód odezvy je 200 (OK) a druhý kód odezvy je 204 (žádný obsah).

Pokud cílový zdroj nemá žádnou reprezentaci, pak by měl server informovat uživatele zasláním odpovědi s kódem 201 (Vytvořeno).

 HTTP/1.1 201 Created
Content-Location: /new.html

Příklad POST

Zde je příklad metody POST:

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

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

Formulář používající výchozí typ obsahu 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

Testování API s požadavky PUT

Zde jsou kroky k testování API s požadavky PUT:

Testování API s požadavky PUT
Testování API s požadavky PUT

Krok 1) Aktualizujte zdroje pomocí požadavku PUT.

Krok 2) Pro zdroj použijte metodu GET. Pokud bude požadavek PUT úspěšný, obdržíte nová data. Tato metoda selže, pokud jsou zadaná data v požadavku neplatná. Proto nebude nic aktualizovat.

Testování API pomocí požadavků POST

Zde jsou kroky k testování API s požadavky POST:

Testování rozhraní API pomocí požadavků POST

Testování API pomocí požadavků POST

Krok 1) Vytvořte zdroj pomocí požadavku POST a ujistěte se, že vrací 200 stavový kód.

Krok 2) Vytvořte požadavek GET pro tento zdroj a uložte data ve správném formátu.

Krok 3) Musíte přidat testy, které zajistí, že požadavky POST selžou s nesprávnými daty.

Výhody metody PUT

Zde jsou výhody/výhody použití metody PUT:

  • Pomůže vám uložit dodanou entitu pod dodaným URI
  • Pokud dodaná entita již existuje, můžete provést operaci aktualizace nebo můžete vytvořit pomocí tohoto URI.
  • Zdroj můžete vytvořit kolikrát chcete.
  • Vytvoření zdroje metodou PUT je velmi snadné.
  • Nemusíte kontrolovat, zda uživatel klikl na tlačítko Odeslat vícekrát nebo ne.
  • Může identifikovat entitu přiloženou k žádosti.

Výhody metody POST

Zde jsou výhody/výhody použití metody POST:

  • Tato metoda vám pomůže určit identifikátor URI prostředku.
  • Určení nové hlavičky umístění zdroje je velmi snadné pomocí hlavičky umístění.
  • Můžete odeslat požadavek na přijetí entity jako nového podřízeného zdroje, který je identifikován pomocí URI.
  • Na webový server můžete odesílat data generovaná uživateli.
  • Je velmi užitečné, když neznáte URL, abyste si ponechali jakýkoli zdroj.
  • Použijte POST, když potřebujete server, který řídí generování URL vašich zdrojů.
  • POST je bezpečná metoda, protože její požadavky nezůstávají v historii prohlížeče.
  • Pomocí pošty můžete bez námahy přenášet velké množství dat.
  • Data můžete ponechat v soukromí.
  • Tuto metodu lze použít k odesílání binárních i ASCII dat.