Зачем мне нужны команды put или DELETE Http?

после выхода в MVC 2, я начал проверять и играть с новыми функциями, но я не мог понять, что использование PUT и DELETE глаголы.

Я искал об этом и читал некоторые статьи, но я не мог получить его.

какова основная цель DELETE и PUT? Имеют ли они какие-либо преимущества перед использованием a GET или POST метод вместо этого (хотя я могу обрабатывать все запросы с GET и POST)?

5 ответов


  • GET: только функция должна послать информацию назад к клиенту. Это должно быть repeatable операции без побочных эффектов.

  • POST: он выполняет операции с побочными эффектами. Это не повторимый (если вы публикуете дважды, сервер действует дважды). После операции он должен перенаправить на другую страницу, чтобы показать результаты с помощью GET.

  • DELETE: своя единственная функция сделать разрушительную деятельность, не repeatable (после удаления объекта больше нечего удалять).

  • PUT: его функция заключается в изменении одного объекта и обновлении его значениями, отправленными в POST (like). Воспроизводимый.

Вы можете подделка DELETE и PUT with POST (поскольку некоторые веб-браузеры не распознают DELETE и PUT).

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


в RESTful-архитектуры, DELETE предполагается использовать для запросов, которые будут удалять данные, и PUT предполагается использовать для запросов, которые будете вставлять данные.


в основном он используется для лучшего различения действий / привилегий.

идемпотентные методы и веб-приложений

методы PUT и DELETE определены для быть идемпотентным, то есть множественным идентичные запросы должны иметь тот же эффект, что и один запрос. Методы GET, HEAD, OPTIONS и TRACE, предписываемый как сейф, должен также быть идемпотентным, поскольку HTTP является апатридом протокол. Напротив, метод POST не обязательно идемпотент, и поэтому отправка идентичного сообщения запрос несколько раз может далее повлиять на состояние или вызвать дальнейшую сторону последствия (например, финансовые сделки.) В некоторых случаях это может желательно, но в других случаях это может быть из-за несчастного случая, например, когда пользователь не понимает, что их действие приведет к отправке еще одна просьба, или они не получить адекватную обратную связь, что их первая просьба была удовлетворена. В то время как веб-браузеры могут показывать оповещения диалог поля для предупреждения пользователей в некоторых случаях где перезагрузка страницы может повторно подать Запрос POST, как правило, до веб-приложение для обработки обращений где запрос POST не должен быть подавал не один раз. Заметить что не является ли метод идемпотентным применяется протоколом или web сервер. Вполне возможно напишите веб-приложение, в котором (для пример) вставка базы данных или другое идемпотентными действие инициируется GET или другой запрос. Игнорируя это однако рекомендация может привести к нежелательные последствия если пользователь агент предполагает, что повторяется одно и то же запрос безопасен, когда это не так.

через wikipedia
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods


во-первых, вы должны проверить Блам очень хороший ответ к этому (dupe?) вопрос.

очевидно, что вы можете технически создание/обновление / удаление ресурсов без использования принципов REST, ut вам не хватает точки. Если вы все еще не понимаете концепции REST,Райан Tomayko это - это хорошее место для начала.


первоначальная цель состояла в редактировании веб-страниц с использованием этих глаголов (подробнее о системе RESTful). С тех пор они были осуждены WebDAV