Ответ 1
DELETE предназначен для удаления ресурса запроса:
Метод DELETE запрашивает, чтобы исходный сервер удалял ресурс, идентифицированный Request-URI. Этот метод МОЖЕТ быть переопределен вмешательством человека (или другими средствами) на исходном сервере. Клиент не может гарантировать, что операция была выполнена, даже если код состояния, возвращенный с исходного сервера, указывает, что действие было успешно завершено...
PUT предназначен для установки или обновления ресурса на сервере:
Метод PUT запрашивает, чтобы закрытый объект хранился в запрошенном Request-URI. Если Request-URI ссылается на уже существующий ресурс, закрытый объект СЛЕДУЕТ считаться модифицированной версией той, которая находится на исходном сервере. Если Request-URI не указывает на существующий ресурс и что URI может быть определен как новый ресурс запрашивающим пользовательским агентом, исходный сервер может создать ресурс с этим URI...
Для полного посещения спецификации:
Поскольку текущие браузеры, к сожалению, не поддерживают какие-либо другие глаголы, чем POST и GET в HTML-формах, вы обычно не можете использовать HTTP в полной мере с помощью их (вы все равно можете захватить их представление через JavaScript, хотя). Отсутствие поддержки этих методов в формах HTML привело к URI, содержащим глаголы, например,
POST http://example.com/order/1/delete
или даже хуже
POST http://example.com/deleteOrder/id/1
эффективно туннелировать CRUD-семантику по HTTP. Но глаголы никогда не должны были быть частью URI. Вместо этого HTTP уже предоставляет механизм и семантику CRUD для ресурса (например, порядка) с помощью HTTP-методов. HTTP - это протокол, а не только служба туннелирования данных.
Итак, чтобы удалить ресурс на веб-сервере, вы вызываете
DELETE http://example.com/order/1
и для его обновления вы бы назвали
PUT http://example.com/order/1
и предоставить обновленное представление ресурсов в теле PUT для применения веб-сервера.
Итак, если вы создаете своего рода клиент для REST API, вы, вероятно, сделаете его отправкой запросов PUT и DELETE. Это может быть клиент, встроенный в браузер, например. отправка запросов через JavaScript или это может быть какой-то инструмент, работающий на сервере и т.д.
Для получения более подробной информации посетите:
- http://martinfowler.com/articles/richardsonMaturityModel.html
- Доступны ли методы PUT, DELETE, HEAD и т.д. в большинстве веб-браузеров?
- Почему в HTML-формах нет методов PUT и DELETE
- Должны ли PUT и DELETE использоваться в формах?
- http://amundsen.com/examples/put-delete-forms/
- http://www.quora.com/HTTP/Why-are-PUT-and-DELETE-no-longer-supported-in-HTML5-forms