Разница между запросами PUT и PATCH

В чем основное различие между PUT и PATCH запросы, и когда мы должны использовать одно вместо другого?

PUT и PATCH - это HTTP-глаголы, и оба они относятся к обновлению ресурса.



Основное различие между запросами PUT и PATCH

Основное различие между запросами PUT и PATCH заключается в том, как сервер обрабатывает вложенный объект, чтобы изменить ресурс, идентифицированный Request-URI.


В PUT запроса, закрытый объект считается модифицированной версией ресурса, хранящегося на исходном сервере, и клиент запрашивает замену сохраненной версии.

Однако с PATCH закрытый объект содержит набор инструкций, описывающих, как ресурс, находящийся в данный момент на исходном сервере, должен быть изменен для создания новой версии.


Кроме того, еще одно отличие состоит в том, что если вы хотите обновить ресурс с помощью PUT request, вы должны отправить полную полезную нагрузку в качестве запроса, тогда как с PATCH вы отправляете только те параметры, которые хотите обновить.

Связанный:

Предположим, у нас есть ресурс, содержащий имя и фамилию человека.

Если мы хотим изменить имя, мы отправляем PUT запрос на обновление


{ 'first': 'Michael', 'last': 'Angelo' }

Здесь, хотя мы меняем только имя, на PUT запрос мы должны отправить оба параметра первым и последним. Другими словами, необходимо снова отправить все значения, полную полезную нагрузку.

Когда мы отправляем PATCH request, однако мы отправляем только те данные, которые хотим обновить. Другими словами, мы отправляем только имя для обновления, не нужно отправлять фамилию.

По этой причине PATCH для запроса требуется меньшая пропускная способность.