Почему я должен ПОМЕСТИТЬ или УДАЛИТЬ Глаголы Http?

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

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

Из чего основная цель DELETE и PUT? У них есть какие-либо преимущества перед использованием a GET или POST метод вместо этого (даже при том, что я могу обработать все запросы с, ДОБИРАЮТСЯ и POST)?

6
задан Esteban Küber 7 August 2017 в 18:27
поделиться

5 ответов

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

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

  • УДАЛЕНИЕ: его единственная функция - выполнять разрушительную операцию, не повторяемую (после удаления объекта больше нечего удалять).

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

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

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

13
ответ дан 8 December 2019 в 14:42
поделиться

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

-3
ответ дан 8 December 2019 в 14:42
поделиться

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

4
ответ дан 8 December 2019 в 14:42
поделиться

Во-первых, вам следует ознакомиться с очень хорошим ответом BlaM на этот (обман?) Вопрос.

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

0
ответ дан 8 December 2019 в 14:42
поделиться

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

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

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

через википедию
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods

2
ответ дан 8 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

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