В чем разница между PUT, POST и PATCH?

В чем разница между методами PUT, POST и PATCH в протоколе HTTP?

+190
27 июн. '15 в 13:15
источник поделиться
7 ответов

СООБЩЕНИЕ

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

ПОЛОЖИЛ

HTTP.PUT может использоваться, когда клиент отправляет данные на сервер, и клиент определяет URI для вновь созданного ресурса. Метод PUT запрашивает, чтобы вложенный объект был сохранен под предоставленным Request-URI. Если Request-URI ссылается на уже существующий ресурс, вложенный объект СЛЕДУЕТ рассматривать как модифицированную версию, находящуюся на исходном сервере. Если Request-URI не указывает на существующий ресурс, и этот URI может быть определен как новый ресурс запрашивающим пользовательским агентом, сервер-источник может создать ресурс с этим URI.

PATCH

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

Для получения дополнительной информации обратитесь к указанному ниже URL

ПОСТ против ПОЧТЫ в ОТДЫХЕ

+176
29 июл. '15 в 11:14
источник

Связанные вопросы


Похожие вопросы

Разница между командами PUT, POST, GET, DELETE и PATCH IN HTTP:

Наиболее часто используемые HTTP-глаголы POST, GET, PUT, DELETE аналогичны операциям CRUD (создание, чтение, обновление и удаление) в базе данных. Мы указываем эти глаголы HTTP в заглавном случае. Итак, ниже приведено сравнение между ними.

  1. создать - POST
  2. читать - ПОЛУЧИТЬ
  3. обновление - PUT
  4. удалить - УДАЛИТЬ

PATCH: представляет частичную модификацию ресурса. Если вам нужно обновить только одно поле для ресурса, вы можете использовать метод PATCH.

Замечания:
Поскольку POST, PUT, DELETE изменяют содержимое, тесты с Fiddler для приведенного ниже URL-адреса просто имитируют обновления. Это не удаляет или изменяет на самом деле. Мы можем просто увидеть коды состояния, чтобы проверить, происходят ли вставки, обновления, удаления.

URL: http://jsonplaceholder.typicode.com/posts/

1) ПОЛУЧИТЬ:

GET - самый простой тип метода HTTP-запроса; тот, который браузеры используют каждый раз, когда вы нажимаете на ссылку или вводите URL в адресную строку. Он указывает серверу передавать данные, идентифицированные URL-адресом, клиенту. Данные никогда не должны изменяться на стороне сервера в результате запроса GET. В этом смысле запрос GET доступен только для чтения.

Проверка с помощью Fiddler или PostMan: мы можем использовать Fiddler для проверки ответа. Откройте Fiddler и выберите вкладку Compose. Укажите глагол и URL, как показано ниже, и нажмите "Выполнить", чтобы проверить ответ.

Глагол: ПОЛУЧИТЬ

URL: http://jsonplaceholder.typicode.com/posts/

Ответ: Вы получите ответ как:

"userId": 1, "id": 1, "title": "sunt aut...", "body": "quia et suscipit..."

В "счастливом" (или не ошибочном) пути GET возвращает представление в XML или JSON и код ответа HTTP 200 (ОК). В случае ошибки чаще всего возвращается 404 (НЕ НАЙДЕНО) или 400 (ПЛОХОЙ ЗАПРОС).

2) ПОЧТА:

Глагол POST в основном используется для создания новых ресурсов. В частности, он используется для создания подчиненных ресурсов. То есть подчиняться какому-то другому (например, родительскому) ресурсу.

При успешном создании верните HTTP-статус 201, вернув заголовок Location со ссылкой на вновь созданный ресурс с HTTP-статусом 201.

Проверка с помощью Fiddler или PostMan: мы можем использовать Fiddler для проверки ответа. Откройте Fiddler и выберите вкладку Compose. Укажите глагол и URL, как показано ниже, и нажмите "Выполнить", чтобы проверить ответ.

Глагол: ПОЧТА

URL: http://jsonplaceholder.typicode.com/posts/

Тело запроса:

данные: {title: 'foo', body: 'bar', userId: 1000, Id: 1000}

Ответ: Вы получите код ответа как 201.

Если мы хотим проверить вставленную запись с Id = 1000, измените глагол на Get и используйте тот же URL и нажмите Execute.

Как было сказано ранее, приведенный выше URL разрешает только чтение (GET), мы не можем читать обновленные данные в режиме реального времени.

3) PUT:

PUT чаще всего используется для возможностей обновления, PUT - для известного URI ресурса с телом запроса, содержащим недавно обновленное представление исходного ресурса.

Проверка с помощью Fiddler или PostMan: мы можем использовать Fiddler для проверки ответа. Откройте Fiddler и выберите вкладку Compose. Укажите глагол и URL, как показано ниже, и нажмите "Выполнить", чтобы проверить ответ.

Глагол: PUT

URL: http://jsonplaceholder.typicode.com/posts/1

Тело запроса:

данные: {title: 'foo', body: 'bar', userId: 1, Id: 1}

Ответ: При успешном обновлении он возвращает 200 (или 204, если не возвращает никакого содержимого в теле) из PUT.

4) УДАЛИТЬ:

УДАЛИТЬ довольно легко понять. Он используется для удаления ресурса, идентифицированного URI.

При успешном удалении верните HTTP-статус 200 (ОК) вместе с телом ответа, возможно, представлением удаленного элемента (часто требует слишком большой пропускной способности) или обернутого ответа (см. "Возвращаемые значения" ниже). Либо так, либо возвращаем HTTP-статус 204 (НЕТ КОНТЕНТА) без тела ответа. Другими словами, статус 204 без тела или ответ в стиле JSEND и статус HTTP 200 являются рекомендуемыми ответами.

Проверка с помощью Fiddler или PostMan: мы можем использовать Fiddler для проверки ответа. Откройте Fiddler и выберите вкладку Compose. Укажите глагол и URL, как показано ниже, и нажмите "Выполнить", чтобы проверить ответ.

Глагол: УДАЛИТЬ

URL: http://jsonplaceholder.typicode.com/posts/1

Ответ: При успешном удалении возвращается HTTP-статус 200 (ОК) вместе с телом ответа.

Пример между PUT и PATCH

ПОЛОЖИЛ

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

{"first": "Nazmul", "last": "hasan"} Итак, здесь, чтобы обновить имя, нам нужно снова отправить все параметры данных.

PATCH:

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

Пожалуйста, обратитесь к ссылкам ниже для получения дополнительной информации:

https://jsonplaceholder.typicode.com/

https://github.com/typicode/jsonplaceholder#how-to

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

http://www.restapitutorial.com/lessons/httpmethods.html

+145
21 нояб. '16 в 0:43
источник

PUT = заменить ПОЛНЫЙ РЕСУРС новым представлением

PATCH = заменить части исходного ресурса на значения, предоставленные И | ИЛИ другие части ресурса обновлены, которые вы предоставили (временные метки) И | ИЛИ обновили ресурсные эффекты другими ресурсами (отношениями)

https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1

+34
09 мая '18 в 15:45
источник

Типы запросов

  • создать - POST
  • читать - ПОЛУЧИТЬ
  • создать или обновить - PUT
  • удалить - УДАЛИТЬ
  • обновление - патч

GET/PUT - идемпотентный патч иногда может быть идемпотентным

То, что является идемпотентом - это означает, что если мы запускаем запрос несколько раз, это не должно влиять на его результат (тот же результат. Предположим, что корова беременна, и если мы разводим ее снова, то она не может быть беременна несколько раз).

get: -

просто получить. Получить данные с сервера и показать их пользователю

{
id:1
name:parth
email:x@x.com
}

post: -

создать новый ресурс в базе данных. Это означает, что он добавляет новые данные. Это не идемпотент.

put: -

Создать новый ресурс, иначе добавить к существующему. Идемпотент, потому что он будет обновлять один и тот же ресурс каждый раз, и результат будет одинаковым. ех. - исходные данные

{
id:1
name:parth
email:x@x.com
}
  • выполнить put-localhost/1 put email: ppp@ppp.com
{
id:1
email:ppp@ppp.com
}

patch

так что теперь пришел патч, запрос PATCH может быть иногда идемпотентным

id:1
name:parth
email:x@x.com
}

Название патча: W

{
id:1
name:w
email:x@x.com
}
HTTP  Method
GET     yes
POST    no
PUT     yes
PATCH   no*
OPTIONS yes
HEAD    yes
DELETE  yes

Ресурсы: Идемпотент - Что такое Идемпотентность?

+4
17 февр. '19 в 11:31
источник

Приведенное ниже определение взято из примера из реального мира.

Примерный обзор
Для каждой клиентской информации мы храним идентификатор, чтобы найти эти клиентские данные, и мы отправим этот идентификатор клиенту для справки.

  1. СООБЩЕНИЕ

    • Если Клиент отправляет данные без идентификатора с использованием метода POST, мы сохраняем их и назначаем новый идентификатор.
    • Если Клиент снова отправляет те же данные без идентификатора с помощью метода POST, мы сохраняем их и назначаем новый идентификатор.
    • Примечание: дублирование разрешено здесь
  2. ПОЛОЖИЛ

    • Если Клиент отправляет данные с идентификатором, мы проверим, существует ли этот идентификатор. Если идентификатор существует, мы обновим данные, в противном случае мы создадим его и назначим новый идентификатор.
  3. PATCH

    • Если Клиент отправляет данные с идентификатором, мы проверим, существует ли этот идентификатор. Если идентификатор существует, мы обновим данные, иначе мы сгенерируем исключение.

Примечание. В методе Put мы не генерируем исключение, если идентификатор не найден. Но в методе Patch мы генерируем исключение, если идентификатор не найден.

Дайте мне знать, если у вас есть какие-либо вопросы по вышеуказанному.

+4
07 апр. '19 в 19:51
источник

Приведенное ниже определение из реального примера 1.POST: для каждого клиента мы сохраняем идентификатор, чтобы найти эти данные клиента.

0
07 апр. '19 в 17:43
источник

Вот разница между методами POST, PUT и PATCH протокола HTTP.

POST

Метод HTTP.POST всегда создает новый ресурс на сервере. Его не-идемпотентный запрос, т.е. Если пользователь обращается к тем же запросам 2 раза, он создаст новый новый ресурс, если нет ограничений.

http post method is like a INSERT query in SQL which always creates a new record in database.

Пример. Используйте метод POST для сохранения нового пользователя, заказа и т.д., когда серверный сервер решает идентификатор ресурса для нового ресурса.

PUT

В методе HTTP.PUT ресурс сначала идентифицируется из URL-адреса, и если он существует, то он обновляется, иначе создается новый ресурс. Когда целевой ресурс существует, он перезаписывает этот ресурс с полным новым телом. Это метод HTTP.PUT используется для СОЗДАНИЯ или ОБНОВЛЕНИЯ ресурса.

http put method is like a MERGE query in SQL which inserts or updates a record depending upon whether the given record exists.

Запрос PUT является idempotent, т.е. удары одних и тех же запросов дважды будут обновлять существующую запись (новая запись не создается). В методе PUT идентификатор ресурса определяется клиентом и указан в URL-адресе запроса.

Пример. Используйте метод PUT для обновления существующего пользователя или заказа.

PATCH

Метод HTTP.PATCH используется для частичных модификаций обновления ресурса, то есть дельта-обновления.

http patch method is like a UPDATE query in SQL which sets or updates selected columns only and not the whole row.

Пример. Вы можете использовать метод PATCH для обновления состояния заказа.

PATCH/api/users/40450236/order/10234557

Тело запроса: {status: 'Delivered'}

-1
11 дек. '17 в 13:36
источник

Посмотрите другие вопросы по меткам или Задайте вопрос