代码之家  ›  专栏  ›  技术社区  ›  Barbaros Alp

为什么我需要放置或删除HTTP动词?

  •  6
  • Barbaros Alp  · 技术社区  · 15 年前

    在MVC 2发布之后,我开始检查和使用新功能,但我不明白它的用途是什么 PUT DELETE 动词。

    我搜了一下,读了一些文章,但还是找不到。

    主要目的是什么 删除 ?他们比使用 GET POST 方法(即使我可以用get和post处理所有请求)?

    5 回复  |  直到 8 年前
        1
  •  13
  •   Anthony Walsh    14 年前
    • GET:唯一的功能是将信息发送回客户机。应该是 repeatable 无副作用的操作。

    • 贴子:它做有副作用的手术。它是 not repeatable (如果发布两次,服务器将执行两次操作)。操作之后,它应该重定向到另一个页面,以使用get显示结果。

    • 删除:它的唯一功能是做一个破坏性的操作,而不是可重复的(一旦对象被删除,就没有其他东西可以删除)。

    • put:它的功能是修改一个对象,并用以post(like)方式发送的值更新它。可重复的。

    你可以 伪造的 删除和发布(因为有些Web浏览器不识别删除和发布)。

    请使用get only显示信息, not for operations with side effects .

        2
  •  4
  •   Justin Ethier    15 年前

    在宁静的建筑中, DELETE 应该用于将删除数据的请求,以及 PUT 应该用于将插入数据的请求。

        3
  •  2
  •   Brian    15 年前

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

    等幂方法和Web应用程序

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

    幡状云
    http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods

        4
  •  0
  •   Community Mohan Dere    8 年前

    首先,你应该退房 BlaM's very good answer 为此(重复?)问题。

    显然你可以 技术上 在不使用REST原则的情况下创建/更新/删除资源,但是您遗漏了一点。如果你还没有真正了解这些概念, Ryan Tomayko's blog entry 是个不错的开始。

        5
  •  -3
  •   Chris S    15 年前

    最初的目的是用那些动词编辑网页( more on the RESTful system )他们已经被 WebDAV 延伸。实际上,Put和Delete从未被使用过(或者很少被定制的应用程序使用)。