HTTP谓词 - 何时使用GET / POST / PUT / Delete

时间:2014-07-22 11:21:17

标签: rest post get put restful-architecture

当您使用RESTFUL服务时,您经常会听到GET/POST/PUT/DELETE这两个词。我的问题是这么多动词背后的想法是什么?我可以在GET动词的帮助下实现一切,或者如果我想在消息正文中发布一些大数据,我可以使用POST动词。我不认为有必要超越这两个动词。

关于何时使用哪个动词,我们是否有任何一般准则? 使用一个动词比另一个动词有什么好处吗?

PS:我知道背后的想法

GET : Get object
PUT : Modify Object
DELETE: Delete Object
POST : Create Object

1 个答案:

答案 0 :(得分:2)

每个动词都有不同的用途。虽然可以简单地解析正文并忽略请求方法,但这是非常糟糕的做法,这使得任何人都更难以更好地理解您的Web服务。

Wikipedia总结了请求方法及其预期行为。

一般来说:

  • 应使用GET从网上请求信息 服务。

  • 应该使用POST将数据放到Web服务器上 没有规定Web服务应该放置数据的位置。一个 示例可能是StackOverflow上的问题。这可以被认为相当于插入。

  • 如果要指定数据的位置,则应使用PUT。 这是一种幂等行为,重复它不会改变任何东西 每次重复通话。一个例子可能是回答或评论 StackOverflow因为它们将链接到资源,例如 回答一个具体的问题。或者,这可以被视为等同于更新。

  • 显然,DELETE用于删除某些数据或a 来自网络服务器的资源。

还有其他请求方法(如维基百科文章中所述),但这些方法涵盖了人们对Web服务的主要交互。