PUT срещу POST: Каква е разликата?

Съдържание:

Anonim

Какво е PUT?

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

В този урок ще научите:

  • Какво е PUT?
  • Какво е POST?
  • Пример за PUT
  • Пример за POST
  • Разлика между PUT и POST
  • Тестване на API с PUT заявки
  • Тестване на API с POST заявки
  • Предимства на метода PUT
  • Предимства на метода POST

Какво е POST?

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

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

КЛЮЧОВИ РАЗЛИКИ:

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

Пример за 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.1Host: example.comContent-type: text/htmlContent-length: 20

New File

Отговори

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

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

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

Пример за POST

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

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

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

Формуляр, използващ типа съдържание по подразбиране / x-www-form-urlencoded:

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

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

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

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

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

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

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

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

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

Тестване на 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 данни.