Що таке PUT?
Метод PUT використовується для оновлення ресурсу, доступного на сервері. Як правило, він замінює все, що є в цільовій URL-адресі, чимось іншим. Ви можете використовувати його, щоб створити новий ресурс або замінити наявний. PUT запитує, що укладений об’єкт повинен зберігатися під наданим запитаним URI (уніфікованим ідентифікатором ресурсу).
У цьому підручнику ви дізнаєтесь:
- Що таке PUT?
- Що таке POST?
- Приклад PUT
- Приклад POST
- Різниця між PUT та POST
- Тестування API із запитами PUT
- Тестування API із запитами POST
- Переваги методу PUT
- Переваги методу POST
Що таке POST?
POST - це метод, який підтримується HTTP та
зображує, що веб-сервер приймає дані, що містяться в тілі повідомлення, яке запитується. POST часто використовується Всесвітньою павутиною для надсилання даних, створених користувачем, на веб-сервер або під час завантаження файлу.
ОСНОВНІ ВІДМІННОСТІ:
- Метод PUT викликається, коли потрібно змінити один ресурс, тоді як метод POST викликається, коли потрібно додати дочірній ресурс.
- Відповідь методу PUT можна кешувати, але ви не можете кешувати відповіді методу PUT.
- Ви можете використовувати UPDATE запит у PUT, тоді як ви можете використовувати query create у 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: 20New 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 / questions |
Відповідь методу PUT можна кешувати. | Ви не можете кешувати відповіді методу PUT. |
PUT / vi / juice / orders / 1234 означає, що ви оновлюєте ресурс, який ідентифікується як "1234". | POST / vi / juice / orders вказує на те, що ви створюєте новий ресурс і повертаєте ідентифікатор для опису ресурсу. |
Якщо ви надсилаєте один і той же запит кілька разів, результат залишатиметься незмінним. | Якщо ви надсилаєте один і той же запит POST більше одного разу, ви отримаєте різні результати. |
PUT працює як специфічний. | POST робота як реферат. |
Ми використовуємо запит UPDATE у PUT. | Ми використовуємо запит створення в POST. |
У методі PUT клієнт вирішує, який ресурс URI повинен бути. | У методі POST сервер вирішує, який ресурс URI повинен бути. |
Тестування API із запитами PUT
Ось кроки для тестування API із запитами PUT:
Крок 1) Оновіть ресурси за допомогою запиту PUT.
Крок 2) Використовуйте метод GET для ресурсу. Якщо запит PUT буде успішним, ви отримаєте нові дані. Цей метод не вдасться, якщо надані дані у запиті є недійсними. Тому він нічого не оновить.
Тестування 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.