应该以表格形式使用PUT和DELETE吗?


76

假设我的Web应用程序在服务器端完全支持PUT和DELETE,我应该使用它们吗?

基本上我的问题是有多少浏览器支持此功能:

<form method="PUT">

要么

<form method="DELETE">

除了符合REST之外,使用这两种HTTP方法还有什么好处?(假设这两种方法的替代品是常用的POST)

Answers:


82

您的问题涉及两个密切相关但又独立的标准,即HTTP和HTML。PUT和DELETE方法是HTTP的一部分。在HTTP中,它们在RESTful接口以及基于HTTP的其他服务(例如Webdav)中有明显的用途。

直到版本4的HTML才定义了对表单使用POST和GET。此时的HTML5似乎可以支持其他方法。[注意,当前的w3草案不包括支持]

当前对浏览器的任何支持(我都不是直接知道的)将非常有限,并且只有在最前沿的实验中才真正有用。


17
目前的HTML5草案并没有支持PUTDELETE表单中。相关部分当前位于“最后的评论征询”中,因此有可能实现它们,但不幸的是,它看起来并不像它。我认为它曾经在那儿然后被移除。
安德鲁·马歇尔

1
关于浏览器支持,mozilla已获得FF4的关注票,这表明他们确实支持FF4,但现在已将其删除-bugzilla.mozilla.org/show_bug.cgi?id=600813
leebriggs 2011年

@andrew确实,这是草案的一部分,但已于去年年底删除。我的意图不是暗示它将成为标准的一部分,而只是暗示它可能是标准的一部分。
leebriggs 2011年

8
我对删除这些方法感到非常失望,因为它们很有意义。是否有人出于此决定的原因而拥有链接?
Tristian


27

GET,POST,PUT和DELETE(还有其他)是HTTP标准的一部分,但目前仅限HTML格式的GET和POST。

如安德鲁所说,您可以在AJAX请求中使用PUT和DELETE。但是,这仅在某些浏览器中有效(请参阅http://api.jquery.com/jQuery.ajax/)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.