PUT срещу POST – Разлика между тях

Основни разлики между PUT и POST

  • Методът PUT се извиква, когато трябва да модифицирате единичен ресурс, докато методът POST се извиква, когато трябва да добавите дъщерен ресурс.
  • Отговорите на метода POST могат да бъдат кеширани, но не можете да кеширате отговорите на метода PUT.
  • Можете да използвате заявка UPDATE в PUT, докато можете да използвате заявка за създаване в POST.
  • При PUT метода клиентът решава кой URI ресурс трябва да има, а при POST метода сървърът решава кой URI ресурс да има.
  • PUT работи като специфичен, докато POST работи като абстрактен.
  • Ако изпратите една и съща PUT заявка няколко пъти, резултатът ще остане същият, но ако изпратите една и съща POST заявка няколко пъти, ще получите различни резултати.
  • Методът PUT е идемпотентен, докато методът POST не е идемпотентен.
PUT срещу POST
PUT срещу POST

Какво представлява методът PUT?

Методът PUT се използва за актуализиране на наличния ресурс на сървъра. Обикновено той замества всичко, което съществува в целевия URL адрес, с нещо друго. Можете да го използвате, за да създадете нов ресурс или да презапишете съществуващ. PUT изисква, че затвореният обект трябва да бъде съхранен под предоставения искан URI (Uniform Resource Identifier).

Какво представлява методът POST?

POST е метод, който се поддържа от HTTP и

изобразява, че уеб сървър приема данните, включени в тялото на съобщението, което е поискано. POST често се използва от World Wide Web за изпращане на генерирани от потребителя данни към уеб сървъра или когато качвате файл.

Разлики между PUT и POST в REST API

Ето важната разлика между метода PUT и POST:

PUT ПУСНИ
Този метод е идемпотентен. Този метод не е идемпотентен.
Методът PUT се извиква, когато трябва да модифицирате единичен ресурс, който вече е част от колекция от ресурси. Методът POST се извиква, когато трябва да добавите дъщерен ресурс под колекция от ресурси.
RFC-2616 описва, че методът PUT изпраща заявка за приложен обект, съхранен в предоставения URI на заявката. Този метод изисква от сървъра да приеме обекта, който е включен в заявката.
Синтаксисът на метода PUT е PUT /въпроси/{идентификатор на въпроса} Синтаксисът на метода POST е POST /въпроси
Не можете да кеширате отговорите на метода PUT. Отговорът на метода POST може да бъде кеширан.
PUT /vi/juice/orders/1234 показва, че актуализирате ресурс, който е идентифициран с „1234“. POST /vi/juice/orders показва, че създавате нов ресурс и връща идентификатор за описание на ресурса.
Ако изпратите една и съща заявка няколко пъти, резултатът ще остане същият. Ако изпратите една и съща POST заявка повече от веднъж, ще получите различни резултати.
PUT работи като специфичен. POST работи като абстрактно.
Ние използваме UPDATE заявка в PUT. Използваме създаване на заявка в POST.
В метода PUT клиентът решава кой URI ресурс трябва да има. При метода POST сървърът решава кой URI ресурс трябва да има.

Пример за PUT

Ето примера на уеб сървър за PUT метод:

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

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

Поискайте

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

<p>New File</p>

Отговорите

Ако целевият ресурс има текущо представяне и е модифициран със състоянието на приложеното представяне, тогава сървърът трябва да изпрати два отговора. Първият код на отговор е 200 (ОК), а вторият код на отговор е 204 (Няма съдържание).

Ако целевият ресурс няма никакво представяне, тогава сървърът трябва да информира потребителя, като изпрати отговор с код 201 (Създаден).

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

Пример за POST

Ето пример за метод POST:

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

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

Формуляр, използващ типа съдържание по подразбиране 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

Тестване на API с PUT заявки

Ето стъпките за тестване на API с PUT заявки:

Тестване на API с PUT заявки
Тестване на API с PUT заявки

Стъпка 1) Актуализирайте ресурсите с PUT заявка.

Стъпка 2) Използвайте метода GET за ресурс. Ако PUT заявката е успешна, ще получите нови данни. Този метод ще се провали, ако предоставените данни в заявката са невалидни. Следователно няма да актуализира нищо.

Тестване на API с POST заявки

Ето стъпките за тестване на API с POST заявки:

Тестване на API с POST заявки

Тестване на API с POST заявки

Стъпка 1) Създайте ресурс с помощта на POST заявка и се уверете, че връща 200 код на състоянието.

Стъпка 2) Направете GET заявка за този ресурс и запазете данните в правилния формат.

Стъпка 3) Трябва да добавите тестове, които гарантират, че POST заявките са неуспешни с неправилни данни.

Предимства на метода PUT

Ето плюсовете/ползите от използването на метода PUT:

  • Помага ви да съхраните доставения обект под предоставения URI
  • Ако предоставеният обект вече съществува, тогава можете да извършите операцията за актуализиране или можете да създадете с този URI.
  • Можете да създавате ресурс толкова пъти, колкото желаете.
  • Създаването на ресурс с метода PUT е много лесно.
  • Не е необходимо да проверявате дали потребителят е кликнал върху бутона за изпращане няколко пъти или не.
  • Той може да идентифицира обекта, приложен към заявката.

Предимства на метода POST

Ето плюсовете/ползите от използването на метода POST:

  • Този метод ви помага да определите URI ресурса.
  • Посочването на ново заглавие на местоположение на ресурс е много лесно с помощта на заглавие на местоположение.
  • Можете да изпратите заявка за приемане на обекта като нов подчинен на ресурса, който се идентифицира от URI.
  • Можете да изпращате данни, генерирани от потребителя, към уеб сървъра.
  • Много е полезно, когато не знаете URL, за да запазите някакъв ресурс.
  • Използвайте POST, когато имате нужда от сървъра, който контролира генерирането на URL адреси на вашите ресурси.
  • POST е сигурен метод, тъй като неговите заявки не остават в хронологията на браузъра.
  • Можете без усилие да предавате голямо количество данни чрез поща.
  • Можете да запазите данните поверителни.
  • Този метод може да се използва за изпращане на двоични, както и ASCII данни.