Database 与数据库通信的最佳实践是POST还是GET?
例如,我想从数据库中搜索/插入/获取/删除数据,我正在使用wcf RESTful服务。 我有一种从表中获取数据的方法,一种在表中搜索的方法,一种在表中插入数据的方法和一种从表中删除数据的方法 我知道这些方法都可以通过POST或GET实现 但是,什么是最聪明的?最佳做法是什么 我的意见是搜索和get方法应该是get。插入和删除方法应为POSTDatabase 与数据库通信的最佳实践是POST还是GET?,database,post,get,Database,Post,Get,例如,我想从数据库中搜索/插入/获取/删除数据,我正在使用wcf RESTful服务。 我有一种从表中获取数据的方法,一种在表中搜索的方法,一种在表中插入数据的方法和一种从表中删除数据的方法 我知道这些方法都可以通过POST或GET实现 但是,什么是最聪明的?最佳做法是什么 我的意见是搜索和get方法应该是get。插入和删除方法应为POST 我说得对吗?你说得对。GET的问题是它应该是幂等的,因为客户端(浏览器)可以随时发送重复的GET。但是,根据规则,邮件只能发送一次 所以任何能改变任何事情的
我说得对吗?你说得对。GET的问题是它应该是幂等的,因为客户端(浏览器)可以随时发送重复的GET。但是,根据规则,邮件只能发送一次
所以任何能改变任何事情的东西都可能是帖子。严格地说,删除也可以是GET,因为重新发送GET不会影响删除,但一般来说,如果您尊重HTTP协议的精神就更好了。有关详细信息,请参阅。你说得对。GET的问题是它应该是幂等的,因为客户端(浏览器)可以随时发送重复的GET。但是,根据规则,邮件只能发送一次
所以任何能改变任何事情的东西都可能是帖子。严格地说,删除也可以是GET,因为重新发送GET不会影响删除,但一般来说,如果您尊重HTTP协议的精神就更好了。有关详细信息,请参见。是的,这是惯例 对更改数据或系统状态的操作使用POST。对不改变任何内容的查询使用GET 例如,通过使用PUT和DELETE增强了这一点,但大多数Web服务器不支持这一点(因此有一种解决方法) 参考资料:
- Nginx默认不支持PUT和DELETE:
- 我也是
- 这两个有
- Nginx默认不支持PUT和DELETE:
- 我也是
- 这两个有
是的,这是惯例 对更改数据或系统状态的操作使用POST。对不改变任何内容的查询使用GET 例如,通过使用PUT和DELETE增强了这一点,但大多数Web服务器不支持这一点(因此有一种解决方法) 参考资料:
GET
用于搜索和获取操作(因为它们不会修改数据;可以多次调用这些操作)
插入操作的POST
DELETE
用于删除操作
(IIS对删除动词没有问题。)
如果我是你,我会用:
GET
用于搜索和获取操作(因为它们不会修改数据;可以多次调用这些操作)
插入操作的POST
DELETE
用于删除操作
(IIS对DELETE
动词没有问题。)是的,我知道有比POST和GET更多的选项,但我把它限制在这两个:)“PUT
和DELETE
[大多数Web服务器不支持]”[引文需要]是的,我知道有比POST和GET更多的选项,但我把它限制在这两个:)“PUT
和DELETE
[都]不受大多数Web服务器的支持”--[需要引用]你的意思不是“与数据库的通信”。你的意思是“与web服务器的通信”,对吗?@SergeiTulentsev不,我的意思是与数据库的通信,因为我的方法都是处理数据库中的表。@SergeiTulentsev好的,你认为标题应该是“从web服务器到web服务器的通信”吗?我认为应该又是“从web服务器到数据库的通信”,你向数据库发送HTTP请求了吗?@SergeiTulentsev你是什么意思?你不是真的指“与数据库的通信”。你指的是“与web服务器的通信”,对吧?@SergeiTulentsev不,我指的是与数据库的通信,因为我的方法都是用于处理表from数据库。@SergeiTulentsev好的,你认为标题应该是“从web服务器到web服务器的通信”吗?我还以为应该是“从web服务器到数据库的通信”,你是否向数据库发送HTTP请求?@SergeiTulentsev这是什么意思?你是什么意思?这篇文章只能发送一次?我可以随时调用我的删除方法我想要,对吗?很抱歉澄清,最多只能发送一次。浏览器将永远不会重新发送HTTP POST方法,如果它没有收到响应或检测到通信故障,它可能会重置GET方法。你怎么说帖子只能发送一次?我可以随时调用我的delete方法,对吗?很抱歉澄清,最多只能发送一次。浏览器我永远不会重新发送HTTP POST方法,如果它没有得到响应或检测到通信故障,它可能会重置GET方法。