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í.

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:
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:
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.