Asp.net 为什么我需要放置或删除Http谓词?

Asp.net 为什么我需要放置或删除Http谓词?,asp.net,asp.net-mvc-2,httpverbs,Asp.net,Asp.net Mvc 2,Httpverbs,MVC2发布后,我开始检查和使用新功能,但我不明白PUT和DELETE动词有什么用 我搜索过它,读过一些文章,但我找不到 DELETE和PUT的主要目的是什么?与使用GET或POST方法相比,它们有什么优势吗(即使我可以用GET和POST处理所有请求)?最初的目的是使用这些动词编辑网页()。此后,扩展已不推荐使用它们。实际上,PUT和DELETE从未被使用过(或者很少被定制的应用程序使用)。在RESTful体系结构中,DELETE应该用于删除数据的请求,而PUT应该用于插入数据的请求。 GET:

MVC2发布后,我开始检查和使用新功能,但我不明白
PUT
DELETE
动词有什么用

我搜索过它,读过一些文章,但我找不到


DELETE
PUT
的主要目的是什么?与使用
GET
POST
方法相比,它们有什么优势吗(即使我可以用GET和POST处理所有请求)?

最初的目的是使用这些动词编辑网页()。此后,扩展已不推荐使用它们。实际上,PUT和DELETE从未被使用过(或者很少被定制的应用程序使用)。

在RESTful体系结构中,
DELETE
应该用于删除数据的请求,而
PUT
应该用于插入数据的请求。

  • GET:唯一的功能是将信息发送回客户端。这应该是一个没有副作用的手术

  • 波斯特:它做手术有副作用。是的(如果发布两次,服务器会执行两次操作)。操作完成后,它应该重定向到另一个页面,以使用GET显示结果

  • 删除:它唯一的功能是执行破坏性操作,不可重复(一旦删除对象,就没有其他可删除的内容)

  • PUT:它的功能是修改单个对象并用POST(类似)方式发送的值更新它。可重复

您可以在POST中伪造DELETE和PUT(因为某些web浏览器无法识别DELETE和PUT)


请使用GET only显示信息。

基本上,它用于更好地区分操作/权限

幂等方法与web应用 方法PUT和DELETE被定义为 是幂等的,意思是多重的 相同的请求应具有相同的 与单个请求的效果相同。 方法GET、HEAD、OPTIONS和TRACE, 被规定为安全的,也应该 是幂等的,因为HTTP是无状态的 协议相比之下,POST方法 不一定是幂等的,并且 因此,发送相同的邮件 多次请求可能会进一步 影响状态或引起进一步的变化 影响(如财务影响) 交易)。在某些情况下,这种情况可能会发生 这是可取的,但在其他情况下 可能是由于事故,例如 当用户没有意识到这一点时 他们的行动将导致 另一个请求,或者他们没有 收到足够的反馈,表明他们的 第一个请求成功。虽然 web浏览器可能会显示警报对话框 在某些情况下用于警告用户的框 其中,重新加载页面可能会重新提交 POST请求,一般取决于 处理案件的web应用程序 不应发送POST请求的位置 多次提交。注意 一个方法是否幂等是不确定的 由协议或web强制执行 服务器。完全有可能 编写一个web应用程序,其中(对于 示例)数据库插入或其他 非幂等动作由 获取或其他请求。忽略这一点 然而,这项建议可能会导致 如果用户 代理假定重复相同的操作 请求在不安全时是安全的

通过维基百科

首先,你应该检查这个(重复?)问题


显然,从技术上讲,您可以在不使用REST原则的情况下创建/更新/删除资源,但您缺少一点。如果您仍然没有真正理解REST背后的概念,那么这是一个很好的起点

谢谢,这已经是我所知道的了,但是它们比使用POST动词删除数据有什么优势吗,例如POST将数据发送到运行在Web服务器上的代码(最常见的是生成网页的代码)。PUT将数据发送到Web服务器软件本身。这里只能有一个Chris!一个优点是,服务器端框架可以使用PUT或DELETE请求这一事实将请求自动路由到适当的控制器方法,而不必在URL中指定。然而,我不确定ASP.NET-MVC是否能做到这一点……我也无法理解现实生活中的实际用途。使用get或post无法实现的动词的实际场景是什么。我认为这是一种哲学的方法,而不是实际的用法。很少?如今,对于所有这些RESTful框架来说,情况并非如此。据我所知,它们并没有被弃用,WebDAV扩展只是出于某种原因在windows上阻止了它们。“我还没有投你反对票,我给你一个澄清的机会。”卓尔,是的,真的。考虑到绝大多数web流量从未接近使用PUT或DELETE,我可以轻松地说它很少使用。我所知道的唯一使用PUT或DELETE的应用程序是与浏览器或超文本传输无关的数据抽象层。如果你声称它们已被弃用,为什么在HTML5上会将它们添加到表单的method属性中?另外,您还没有提到我对WebDAV的评论,如果它确实不赞成PUT和DELETE,那么它就不是RESTful的,因为使用asp.net mvc的程序员希望实现禁用它。@drow,原来的PUT和DELETE命令在WebDAV中被替换。HTML5是一种带有传输建议的文档语言规范,而不是一种通信协议。我认为您误解了RESTful系统是什么,它本质上不需要PUT和DELETE动词(来自原始规范或WebDAV规范)。应该有创建和删除的方法,如果没有,WebDAV就不是RESTful。这就是我的意思。你说的更新是指投入吗?经常使用的单词是幂等的:多次重复操作会导致相同的更改。GET、PUT和DELETE都是幂等操作。GET也是安全的(它不做任何更改)。DELETE是幂等的,因为将同一资源删除两次sti