哪个浏览器完全支持REST。意味着Get,Post,PUT和DELETE方法?

时间:2012-01-09 07:42:44

标签: ruby-on-rails rest

哪个浏览器完全支持REST? 意味着Get,Post,PUT和DELETE方法?

我理解用于理解PUT和DELETE的rails方式是“_method”隐藏变量,如

  <form id="form_id" action="" method="PUT" >
   -- form content --
   </form>

方法= “PUT”?

或者我错了?

3 个答案:

答案 0 :(得分:9)

在许多REST框架中,可以通过所谓的“重载POST”来实现从浏览器调用HTTP PUT或DELETE操作。这意味着您将请求从浏览器作为POST请求提交给服务器,并在URL中附加一些信息,指定应该使用的实际HTTP方法。

我知道Java的Restlet框架遵循这种方法,我相信Rails也是如此。

因此,如果您有一个定义如下的REST API:

  • POST - http://myservice/myobject - &gt;创建一个新对象和 返回对象id
  • GET - http://myservice/myobject/id - &gt; 返回对象
  • PUT - http://myservice/myobject/id - &gt; 更新对象
  • DELETE - http://myservice/myobject/id - &gt; 删除对象

使用浏览器中的重载POST也可以

  • POST - http://myservice/myobject/id?method=PUT - &gt;更新对象
  • POST - http://myservice/myobject/id?method=DELETE - &gt;删除对象

事实上,对于不支持PUT或DELETE的Flex,这是调用这些REST操作的唯一方法。

答案 1 :(得分:1)

这个问题几乎与这个问题相同:Are the PUT, DELETE, HEAD, etc methods available in most web browsers?, 看到那里有一个很好的答案。

此外,“GET,POST,PUT和DELETE”不是“REST”。所有四种方法都是HTTP规范中的不同方法,REST是一种使用这四种方式的架构风格。

答案 2 :(得分:-4)

PUT和DELETE只是规范,并不是由任何浏览器和Web服务器实现的。

因此,如果您要发送请求,请不要设计支持PUT或DELETE的RESTful Web服务。