与数据库通信的最佳实践 - POST或GET?

时间:2011-12-25 19:15:09

标签: database post get

例如,我想搜索/插入/获取/删除数据库中的数据,我正在使用wcf RESTful服务。 我有一种从表中获取数据的方法,一种在表中搜索的方法,一种在表中插入数据的方法和一种从表中删除数据的方法。

我知道所有这些方法都可以是POST或GET。

但是,什么是最聪明的?什么是最佳做法?

我的意见是搜索和get方法应该是GET。 insert和DELETE方法应该是POST。

我是对的吗?

3 个答案:

答案 0 :(得分:3)

你是对的。关于GET的事情是它应该是幂等的,因为客户端(浏览器)可以随时发送重复GET。但是POST只能发送一次(根据规则)。

所以任何改变任何事情的东西都可能是一个POST。严格来说删除也可以是GET,因为重新发送GET不会损害删除,但通常情况下,如果您尊重HTTP协议的精神会更好。有关详细信息,请参阅HTTP RFC 2616

答案 1 :(得分:1)

是的,这就是惯例。

将POST用于更改数据或系统状态的操作。对不会改变任何内容的查询使用GET。

例如,

Rails通过使用PUT和DELETE来增强这一点,但大多数网络服务器都不支持这种方式(因此有一种解决方法)。

参考文献:

答案 2 :(得分:1)

Wiki has a good overview of the HTTP verbs and their use.

如果我是你,我会使用:

GET用于搜索和获取操作(因为它们不会修改数据;可以安全地多次调用这些操作)

POST用于插入操作

DELETE用于删除操作

(IIS对DELETE动词没有问题。)